PDA

View Full Version : دوسوال درمورد combobox



hsadeh
سه شنبه 30 مرداد 1386, 16:32 عصر
سلام - در VB.NET :
1- چگونه میتوان combobox راطوری تنظیم کرد که کاربر نتواند درون آن چیزی بنویسد و فقط بتواند یکی از آیتمهای آنرا انتخاب کند ؟
2- چگونه میتوان combobox راطوری تنظیم کرد که کاربر با نوشتن اولین حرف ، اولین کلمه که با آن حرف شروع میشود سلکت شود و اگر دومین حرف را سلکت کرد ، اولین کلمه ای سلکت شود که دوحرف اول آن همان دو حرفی باشند که توسط کاربر نوشته شده اند .
سپاسگزارم

rezaiy.ali
سه شنبه 30 مرداد 1386, 16:57 عصر
با سلام خدمت دوست گرامی
من فقط در مورد سوال اول شما می تونم کمک کنم
دوست گرامی در زمان طراحی خاصیت DropDownStyle ابزار combobox را به DropDownList تغییر دهید
با این کار دیگه کاربر نمی تونه چیزی داخل combobox بنویسه

MH2538
سه شنبه 30 مرداد 1386, 17:38 عصر
سلام
برای بخش دوم سئوالت
تو Propertyهای کمبوباکست گزینه AutoCompleteMode رو برابر با SuggestAppend قرار بده

hsadeh
چهارشنبه 31 مرداد 1386, 06:56 صبح
با تشکر از هر دوی شما دوستان عزیز
اما در مورد سوال دوم ، در Propertyهای کمبوباکس، گزینه AutoCompleteMode را پیدا نکردم
راه دیگری ندارد ؟ متشکرم

rezaiy.ali
چهارشنبه 31 مرداد 1386, 07:05 صبح
با سلام
اگه با VB.net 2005 کار میکنی اگه خوب دقت کنی حتما پیدا می کنی و اگه با 2003 کار می کنی شاید این کد کارساز باشه


ComboBox1.AutoCompleteMode=AutoCompleteMode.Sugges tAppend

negar_programmer
چهارشنبه 31 مرداد 1386, 07:11 صبح
با سلام
اگه با VB.net 2005 کار میکنی اگه خوب دقت کنی حتما پیدا می کنی و اگه با 2003 کار می کنی شاید این کد کارساز باشه


ComboBox1.AutoCompleteMode=AutoCompleteMode.Sugges tAppend

همچین کدی رو 2003 نداره

hsadeh
چهارشنبه 31 مرداد 1386, 07:20 صبح
با 2003 کار میکنم .

AutoCompleteMode را نمی شناسد

hsadeh
چهارشنبه 31 مرداد 1386, 13:11 عصر
یه راه حل پیدا کردم :


PrivateSub cboName_KeyUp(ByVal sender AsObject, ByVal e As System.Windows.Forms.KeyEventArgs) Handles combobox_name.KeyUp
AutoCompleteCombo_KeyUp(combobox_name, e)
EndSub
PublicSub AutoCompleteCombo_KeyUp(ByVal cbo As ComboBox, ByVal e As KeyEventArgs)
Dim sTypedText AsString
Dim iFoundIndex AsInteger
Dim oFoundItem AsObject
Dim sFoundText AsString
Dim sAppendText AsString
'Allow select keys without Autocompleting
SelectCase e.KeyCode
Case Keys.Back, Keys.Left, Keys.Right, Keys.Up, Keys.Delete, Keys.Down
Return
EndSelect
'Get the Typed Text and Find it in the list
sTypedText = cbo.Text
iFoundIndex = cbo.FindString(sTypedText)
'If we found the Typed Text in the list then Autocomplete
If iFoundIndex >= 0 Then
'Get the Item from the list (Return Type depends if Datasource was bound
' or List Created)
oFoundItem = cbo.Items(iFoundIndex)
'Use the ListControl.GetItemText to resolve the Name in case the Combo
' was Data bound
sFoundText = cbo.GetItemText(oFoundItem)
'Append then found text to the typed text to preserve case
sAppendText = sFoundText.Substring(sTypedText.Length)
cbo.Text = sTypedText & sAppendText
'Select the Appended Text
cbo.SelectionStart = sTypedText.Length
cbo.SelectionLength = sAppendText.Length
EndIf
EndSub

فقط در خط اول و دوم بجای combobox_name باید نام کمبوباکس خودتان رابنویسید.