日期:2014-05-18  浏览次数:20706 次

关于textBox的问题,我是小白,~~~~万盼回复~~~~~~~~~~~
在某WIN窗体中

有一个textBox控件用来支持名称查询  
即输入某商品名 下方的dataGridView控件会显示该商品

有一个comboBox控件用来支持类型查询
即输入某商品类型名 下方的dataGridView控件会显示该类的所有商品

现在comboBox的这个功能通过comboBox1_SelectedIndexChanged()实现了
但是textBox怎么弄都实现不了

comboBox是直接点击下拉列表的值可以实现
但是textBox需要手动输入商品名称 不能用类似SelectedIndexChanged()的方法实现吧??
否则每输入一个字 text就改变 此方法就要执行一次。。。。

请问高人,怎么实现此textBox的这个功能呢?通过输入名称搜索??

------解决方案--------------------
在验证事件中或焦点离开事件,要不弄个小按钮放旁边也行
------解决方案--------------------
可以在Leave事件里执行,但这要求操作上在输入完成后由用户使焦点离开文本框。

如果不允许这样的要求,可以在TextChanged事件里处理。为减少控件刷新次数,可以先在数据源里寻找TextBox的Text属性值,在找到后才刷新DataGridView。若未找到则不刷新。
------解决方案--------------------
GetData("select * from 商品表 where 商品简称=" + textBox1.Text.ToString());
检查这个地方传进去的参数,估计是有问题的。

按理说这里应该把商品简称加上引号,还应该去除多余的空格。
------解决方案--------------------
try
{

}
catch (Exception yy)
{
MessageBox.Show( yy.ToString() );
}
finally
{

}
这样写才能显示系统提示的错误,不然只是你的提示“数据库异常”
------解决方案--------------------
textBox_validated 用这个事件,会在你鼠标离开控件时执行查询,以后几个也可以

Leave //输入焦点离开控件时发生
Validated //数据效验完成后发生
LostFocus //失去焦点时发生
------解决方案--------------------
GetData("select * from 商品表 where 商品简称=" + textBox1.Text.ToString());
商品简称 是字符串吧?要加单引号。
建议用参数,不要直接拼语句。