首页 > 解决方案 > 根据另一个自动完成文本框的选定文本填充文本框 c# winforms

问题描述

我的表格截图

我有两个文本框txtPartNumbertxtDesc。零件编号文本框是使用 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文本框应填充我在上述查询中从数据库中获得的描述。

上面附上我的表格的屏幕截图。我怎么得到那个?

标签: c#winforms

解决方案


Bizhan的评论是答案的一个很好的线索。使用 txtPartNumber 上的 Leave 事件来使用 Description 更新 txtDesc。一些改进您的解决方案的建议:

查询数据库,构建txtPartNumber的TextChanged事件的AutoCompleteStringCollection OUT 。TextChanged在用户的每次击键时引发。在将整个代码输入文本框控件之前,它将被多次调用。(一般来说,避免在事件处理程序中做太多事情,而是使用私有方法。)

在阅读itmPartNumber时,请同时阅读itemDescr。当用户决定输入哪个部分时,您可以使用字典来存储两者并稍后检索描述。


推荐阅读