איך מגידרים בVB.net ערך בcomobox

OnTheRoad

New member
איך מגידרים בVB.net ערך בcomobox

ששונה מהערך שמוצג כמו שבHTML לתג <option> יש value?
 

OnTheRoad

New member
לדוג'....

With rst .Open("select * From SourceCode", cnn, 3, 3) Do While Not .EOF ComboBox1.Items.Add(rst.Fields("language").Value) .MoveNext() Loop End With​
איך אני מגדיר לכל Item חוץ מהערך שהוא מציג ערך נוסף?
 

yuval k

New member
עד כמה שאני יודע, אתה לא יכול..

אבל אתה כן יכול לקבל את ה-Index שלו. יכול להיות שזה יספיק לך, במקרים מסויימים, ואם לא - פשוט החזק מערך של ה-values לפי ה-index.. ..או שבעצם, צור לך struct שמחזיק את ה-value וה-key, ומחזיר את ה-key במתודה ToString שלו - וקבל אותו בחזרה לפי SelectedItem
 
ה-combobox מחזיק אובייקטים

שלא כמו ב-vb6 ששם היה מחרוזת+מספר(item data) בדוט נט זה אובייקטים שאתה פשוט בוחר איזה property להציג ואיזה ישמש כ-value. תקרא על ה-properties DisplayMember ן-ValueMember של ה-combo
 

OnTheRoad

New member
יש לי עדיין בעיה....

מדוע אני לא יכול לקבל את הערך הזמן בחירת פריט??? מצ"ב הקוד תודה לעוזרים...
Sub open5() Dim strSQL As String = "select * from Products" Dim Connection As New OleDbConnection(MyConnection) Dim DA As New OleDbDataAdapter(strSQL, Connection) Dim DS As New DataSet() DA.Fill(DS, "Codes") Dim dt As New DataTable() dt.Columns.Add("productTitle", GetType(System.String)) dt.Columns.Add("Code", GetType(System.String)) Dim drDSRow As DataRow Dim drNewRow As DataRow For Each drDSRow In DS.Tables("Codes").Rows() drNewRow = dt.NewRow() drNewRow("productTitle") = drDSRow("productTitle") drNewRow("Code") = drDSRow("id") dt.Rows.Add(drNewRow) Next ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList With ComboBox1 .DataSource = dt .DisplayMember = "productTitle" .ValueMember = "Code" .SelectedIndex = 0 End With End Sub​
 
למעלה