问题描述:使用DevExpress控件的输入框,按回车调用服务查询显示列表,每次加载后第一次搜索就报此异常: 未将对象引用设置到对象的实例
KeyDown事件代码如下:
private void repositoryItemTextEdit1_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter)
{
string sNextPoId =txtPO.EditValue.ToString();// (sender as TextEdit).Text
if (InvViewBakingZone(sNextPoId) == false)
{
return;
}
return;
}
}
catch (Exception ex)
{
CommonFunction.ShowMsgBox(ex.Message);
return;
}
}
原因:使用txtPO.EditValue.ToString()获取输入的值会有延迟,导致输入值后按回车时,获取的值是输入前的空值,而空值不能使用toString()方法
解决方法:将txtPO.EditValue.ToString()用(sender as TextEdit).Text替换即可。
另:repositoryItemTextEdit1绑定txtPO控件,但是值的changed事件的实现是repositoryItemTextEdit1。