vb.net - DataGridView ComboBox -
i have program has datagridview 2 combobox , 2 textbox. first combobox contains oids , other combobox contains snmp operation (get & getnext). want add combobox beside oid’s combobox contains description oids (like 1.3.6.1.2.1.1.1.0 sysdescr , on), , value of new combobox(the 1 description of oids) changes automatically user changes oid in first combobox. possible? if yes how? here code: imports system imports snmpsharpnet
public class form1 private sub datagridview1_cellcontentclick(byval sender system.object, byval e system.windows.forms.datagridviewcelleventargs) handles datagridview1.cellcontentclick
end sub private sub button1_click_1(byval sender system.object, byval e system.eventargs) handles button1.click datagridview1.columns.add("nameone", "column one") datagridview1.columns.add("nametwo", "column two") dim datagridrow new datagridviewrow() dim cells datagridviewcell() = new datagridviewcell(1) {} dim txt1a new datagridviewtextboxcell() dim txt1b new datagridviewtextboxcell() txt1a.value = "host" txt1b.value = "115.186.118.130" datagridrow.cells.add(txt1a) txt1a.[readonly] = true datagridrow.cells.add(txt1b) datagridrow.height = 20 datagridview1.rows.add(datagridrow) datagridrow = new datagridviewrow() cells = new datagridviewcell(1) {} dim txt2a new datagridviewtextboxcell() dim cbo1 new datagridviewcomboboxcell() cbo1.items.add("1.3.6.1.2.1.1.1.0") cbo1.items.add("1.3.6.1.2.1.1.2.0") cbo1.items.add("1.3.6.1.2.1.1.3.0") cbo1.items.add("1.3.6.1.2.1.1.4.0") cbo1.items.add("1.3.6.1.2.1.1.5.0") cbo1.value = cbo1.items(0) cbo1.[readonly] = false txt2a.value = "oids" datagridrow.cells.add(txt2a) txt2a.[readonly] = true datagridrow.cells.add(cbo1) datagridrow.height = 20 datagridview1.rows.add(datagridrow) dim requestoid() string requestoid = new string() {cbo1.selected} datagridrow = new datagridviewrow() cells = new datagridviewcell(1) {} dim txt3a new datagridviewtextboxcell() dim cbo2 new datagridviewcomboboxcell() cbo2.items.add("get") cbo2.items.add("getnext") cbo2.value = cbo2.items(0) cbo2.[readonly] = false txt3a.value = "snmp operation" datagridrow.cells.add(txt3a) txt3a.[readonly] = true datagridrow.cells.add(cbo2) datagridrow.height = 20 datagridview1.rows.add(datagridrow) datagridrow = new datagridviewrow() cells = new datagridviewcell(1) {} dim txt4a new datagridviewtextboxcell() dim txt4b new datagridviewtextboxcell() txt4a.value = "community string" txt4b.value = "public" datagridrow.cells.add(txt4a) datagridrow.cells.add(txt4b) datagridrow.height = 20 datagridview1.rows.add(datagridrow) end sub private sub datagridview1_editingcontrolshowing(byval sender object, byval e datagridvieweditingcontrolshowingeventargs) dim combocontrol datagridviewcomboboxeditingcontrol = trycast(e.control, datagridviewcomboboxeditingcontrol) if combocontrol isnot nothing ' set dropdown style editable combobox if combocontrol.dropdownstyle <> comboboxstyle.dropdown combocontrol.dropdownstyle = comboboxstyle.dropdown end if end if end sub private sub button2_click(byval sender system.object, byval e system.eventargs) handles button2.click dim result dictionary(of oid, asntype) dim cbo1 new datagridviewcomboboxcell() dim txt1b new datagridviewtextboxcell() txt1b.value = "203.81.211.117" dim host string dim community string host = datagridview1.rows(0).cells(1).value.tostring community = datagridview1.rows(3).cells(1).value.tostring dim txt4b new datagridviewtextboxcell() txt4b.value = "public" dim snmp new simplesnmp snmp = new simplesnmp(datagridview1.rows(0).cells(1).value.tostring, datagridview1.rows(3).cells(1).value.tostring) 'abc.text = txtsnmpaction.selecteditem result = snmp.get(snmpversion.ver1, new string() {datagridview1.rows(1).cells(1).value.tostring()}) 'result = snmp.getnext(snmpversion.ver1, requestoid) 'if (txtsnmpaction = "getbulk") 'result = snmp.getbulk(new string() {".1.3.6.1.2", ".1.3.6.1.3"}) ' end if if not snmp.valid messagebox.show("invalid hostname/community") end if if result isnot nothing dim kvp keyvaluepair(of oid, asntype) each kvp in result messagebox.show(kvp.key.tostring) messagebox.show(snmpconstants.gettypename(kvp.value.type)) messagebox.show(kvp.value.tostring()) next kvp else messagebox.show("no results received") end if end sub end class
i'd make snmp operation read-only text field , set programatically. handle datagridview1.cellvaluechanged event.
edit: changing description rather snmp operation.
private sub datagridview1_cellvaluechanged(sender object, e system.windows.forms.datagridviewcelleventargs) handles datagridview1.cellvaluechanged if e.columnindex = 3 dim row datagridviewrow = datagridview1.rows(e.rowindex) dim description string = nothing select case row.cells(3).value case "1.3.6.1.2.1.1.1.0" : description = "sysdescr" ... end select row.cells(5).value = description ' change (5) description column index. end if end sub
Comments
Post a Comment