c# - 根据另一个自动完成文本框的选定文本填充文本框 c# winforms
问题描述
我有两个文本框txtPartNumber,txtDesc。零件编号文本框是使用 text_change_event 上的以下代码自动完成的,效果很好。
try
{
string query = "select [itmPartNumber],[itemDescr] from [vstItems]";
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
AutoCompleteStringCollection autoPart = new AutoCompleteStringCollection();
while (sdr.Read())
{
autoPart.Add(sdr.GetString(0));
}
txtPartNum.AutoCompleteMode = AutoCompleteMode.Suggest;
txtPartNum.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtPartNum.AutoCompleteCustomSource = autoPart;
}
我要查找的是textPartNumber _leave 事件 txtDescr文本框应填充我在上述查询中从数据库中获得的描述。
上面附上我的表格的屏幕截图。我怎么得到那个?
解决方案
Bizhan的评论是答案的一个很好的线索。使用 txtPartNumber 上的 Leave 事件来使用 Description 更新 txtDesc。一些改进您的解决方案的建议:
查询数据库,构建txtPartNumber的TextChanged事件的AutoCompleteStringCollection OUT 。TextChanged在用户的每次击键时引发。在将整个代码输入文本框控件之前,它将被多次调用。(一般来说,避免在事件处理程序中做太多事情,而是使用私有方法。)
在阅读itmPartNumber时,请同时阅读itemDescr。当用户决定输入哪个部分时,您可以使用字典来存储两者并稍后检索描述。
推荐阅读
- javascript - 是否可以在 python 中导入 javascript 程序?
- c# - 取消任务中使用的取消令牌的正确方法是什么?
- reactjs - ReactJs:将数据获取代码或副作用移动到 componentDidUpdate
- python - 如何对具有多个字符串的数据框列进行热编码?
- html - 如何在Angular应用程序中允许基本的自定义样式避免innerHTML
- php - HTML FORM 重定向一个输入值,并处理其他输入值
- android - 是否可以知道用户是否选择在 Android 上取消日历事件插入?
- .net - Entity Framework 6.3 as a Service 和 .Net Core 3
- c# - 当控制器方法具有异步后缀时,AspNetCore 3.0(从 2.2 升级)路由似乎中断
- excel - 在 C 中插入包含信息的新行 复制其他数据