写了一段代码,希望通过comboBox选项自动关联填充另外两项输入框时发现数据获取异常
comboBox绑定数据源代码如下:
this.cbKHMC.DataSource = dt;
this.cbKHMC.DisplayMember = "Name";
this.cbKHMC.ValueMember = "Value";


this.cbKHMC.AutoCompleteSource = AutoCompleteSource.ListItems;
this.cbKHMC.AutoCompleteMode = AutoCompleteMode.SuggestAppend;




实现代码如下:
private void SelectedIndexChanged(object sender, EventArgs e)
{
//显示简称和拼音
string strKHMC = this.cbKHMC.Text.Trim();


调试时窗口界面数据显示正常,但设置断点候发现strKHMC首次返回的总是System.data.dataRowView,与初始化的数据不一致。事件函数换成SelectionChangeCommitted 后,显示正常,取值正常,但发现取到的值是选择内容变化前的值,而非选中值。网上搜出不少类似问题,但没有看到满意的答案,经过尝试,绑定数据源代码略微调整后即可在SelectedIndexChanged事件中获得预期值。

comboBox绑定数据源代码调整为: this.cbKHMC.DisplayMember = "Name";
this.cbKHMC.ValueMember = "Value";
this.cbKHMC.DataSource = dt;


this.cbKHMC.AutoCompleteSource = AutoCompleteSource.ListItems;
this.cbKHMC.AutoCompleteMode = AutoCompleteMode.SuggestAppend;




附:comboBox选项变化触发事件代码,有三种选择
SelectionChangeCommitted () 在选定项发生更改并且该更改显示在 ComboBox 中时发生
SelectedIndexChanged() 在 SelectedIndex 属性更改后发生
SelectValueChanged() 当 SelectedValue 属性更改时发生

[http://rdc.hundsun.com/forum.php?mod=viewthread&tid=215&page=1]duansp发短消息加为好友duansp 当前离线注册时间2010-11-24 最后登录2012-1-14 阅读权限100 积分786 精华0 帖子119 版主
本文实例讲述了WinForm comboBox 控件 数据 实现方法。分享给大家供大家参考,具体如下: 下面介绍三种对 comboBox 的方式,分别是泛型 IList和Dictionary,还有 数据 集DataTable  一、IList 现在我们直接创建一个List集合,然后 IList list = new List(); list.Add(111111); list.Add(222222); list.Add(333333); list.Add(444444); comboBox 1.DataSource = list; 执行后,我们会
1,更改DataGridView ComboBox Column点击两次变为点击一次 private void dataGridView2_CellEnter_1(object sender, DataGridViewCellEventArgs e) index = e.RowIndex; //实现单击一次显示下拉列表框 if (da...
c# 调用WinAPI 设置 Combobox 选择项时手动触发CBN_SELCHANGE 事件 的方法选 包含指 文本的 Combobox 选项触发SelectChange 选 包含指 文本的 Combobox 选项 最近因为开发一个桌面系统插件,需要根据指 的文本内容自动选 窗口上的 Combobox 。逻辑上不复杂,先获 Combobox 的句柄,SendMessage发送CB_GETCOUNT获 Combobox 的选项数,再遍历发送CB_GETLBTEXTLEN获 每个选项的文本长度,发送CB_GETLBTEXT读
想要实现button按钮实现 ComboBox 的SelectedIndexChanged 事件 ,网上搜索都是一些不被触发的问题,既然没人问,那应该是有些简单吧。问了懂得人最后终于写出来了。实现方法:private void comboLevel_SelectedIndexChanged(object sender, EventArgs e) {...} private void button4_Clic
一、了解 C# 的预 事件 处理机制 在写代码前我们先来熟悉.net框架 事件 有关的类和委托,了解 C# 事件 的处理。 EventArgs是包含 事件 数据 的类的基类,用于传递 事件 的细节。 EventHandler是一个委托声明如下 public delegate void EventHandler( objectsender, EventAr...
在.Net 2.0版本之后,就默认提供了System.IO.Ports.SerialPort类,用户可以简单地编写少量代码就完成串口的信息收发程序。 // 代码 (下拉触发 事件 ) private void comboBox Uart_2_DropDown(object sender, EventArgs e) int i = 0; this. comboBox Uart_2....
今天回答了坛子里一位朋友的提问,问题是这样的: comboBox 1 数据 源后,怎么获 comboBox 1所选 行对应 数据 的其他字段值。以前没注意过这方面的积累。 今天写到博客分享一下。虽然简单,我还是写一下。 comboBox 1 数据 源datatable datatable 有三个字段,分别为id, name,number; 设置如下: id作为 comboBox
```python import sys from PyQt5.QtWidgets import QApplication, QWidget, Q ComboBox , QPushButton class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 200) self.setWindowTitle(' ComboBox ') # 添加 ComboBox self. comboBox = Q ComboBox (self) self. comboBox .setGeometry(20, 20, 150, 30) self. comboBox .addItem('Option 1') self. comboBox .addItem('Option 2') self. comboBox .addItem('Option 3') # 添加Button self.button = QPushButton('Click', self) self.button.setGeometry(180, 20, 80, 30) # Button的clicked信号与 事件 处理函数 self.button.clicked.connect(self.onButtonClick) self.show() def onButtonClick(self): # 获 当前选 ComboBox 的选项 selected_option = self. comboBox .currentText() # 根据选项执行对应的操作,这里只是简单的打印选项 print(selected_option) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) 在这个示例 ,我们创建了一个界面,添加了一个 ComboBox 和一个Button,并将Button的clicked信号与onButtonClick 事件 处理函数 起来。 在onButtonClick 事件 处理函数 ,我们通过调用Q ComboBox 的currentText()方法获 当前选 的选项,并根据选项执行对应的操作。这里只是简单的打印选项,你可以根据自己的需求进行修改。