点击按钮的时候怎么才能不响应Textbox的LostFocus事件

MR_Dearry 2016-06-08 11:27:20
我现在要做的功能是:在一个Textbox中输入完点击其他地方立刻根据这个Textbox查询信息。
WPF界面:
<TextBox x:Name="txtCardNum" LostFocus="txtCardNo_LostFocus" />(这里是一个身份证的Textbox)
<Button x:Name="btnCancel" Click="btnCancel_Click">取消</Button>
c#后台:
private void txtCardNo_LostFocus(object sender, RoutedEventArgs e)
{
焦点一失去,点到其他Textbox或者其他控件的时候,就把TxtCardNum的值传给服务器,服务器如果查找到了就返回数据,没查到就返回错误。
cardNo = txtCardNo.Text.Trim();
var response =GetPatientInfoByCardNo(cardNo, App.User.HospitalID);
if (response.Data != null && response.Exception.ErrorCode == 5205)
{
bind_page(response.Data);
PatientModel = response.Data;
}
else
{
提示错误
}
}
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
运行的时候我发现点了这个Textbox但什么也没改的时候直接点击取消按钮,它会先优先响应txtCardNo_LostFocus事件。怎么才能让点击取消的时候窗口就直接关闭了。
...全文
321 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_lz 2016-06-08
  • 打赏
  • 举报
回复
既然用了 lostfocus 事件 那估计也就只能这样了 你无法知道 焦点离开的时候 你是要点击 确定 还是 取消 而且按照顺序来说 lostfocus 事件肯定是优先执行的 没有 lostfocus 又哪里来的其他控件 gotfocus ?。 而且你这样 我也觉得没有什么不妥的 就算是离开焦点 提示一个 没有查询到数据 管他点的是 确定 还是 取消都无所谓 只是 提示你的做的好看一个 别是弹框的那种提示就是了
  • 打赏
  • 举报
回复
比如说你遇到一个人告诉你“我是人,如果我说谎了那么我就不是人”,你认为他说话有没有自相矛盾呢? 但是你自己就在随时随地扯这种毛病,还用来编程。这就需要一边学习编程一边学习整理自己的逻辑,甚至重点是后者,而编程技能其实根本不重要。
  • 打赏
  • 举报
回复
延迟执行,比如在你的lostfocus加个thread.Sleep(100),然后判断个全局变量,确认是否要继续执行 而你按钮点击事件时,将全局变量改值
  • 打赏
  • 举报
回复
你是业务逻辑错误,不要把它推给编程。要有能力先“分出层次来”,这样才能提高自己的程序设计水平,你才能跟那些浑浑噩噩的编程者显出“差别”。 1. 如果你在业务逻辑上没有设计过 LostFocus 相关的流程,为什么要写代码呢?代码可以删除了! 2. 反之,如果代码是有文档的、有业务逻辑的,那么现在出了问题,一定要回到业务逻辑上去考虑,而不要扯到什么编程伎俩上。例如,如果你业务逻辑能说到“如果用户有修改,则.......”这是 LostFocus 处理的逻辑,而你发现 LostFocus 代码是不管用户有没有修改都执行什么 cardNo = txtCardNo.Text.Trim() 的语句,这是代码跟逻辑设计不符,这样的代码就是废物代码,如果带着 bug 再来些更多的废物代码暂时掩盖它,就会产生恶性循环。 只有你能抛开它而看到更高层次、更本质的编程原因,才能真正解决问题。而用技术来理解问题,这本身是邪的。不要太技术化,要学会站在逻辑的角度来设计软件流程,而先把编程伎俩忘掉。
  • 打赏
  • 举报
回复
你给“取消”按钮注册PreviewGotKeyboardFocus事件,在事件的相应函数里面设置e.Handled = true;
private void CancelBT_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
        e.Handled = true;
}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧