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

问题描述

我现在要做的功能是:在一个Textbox中输入完点击其他地方立刻根据这个Textbox查询信息。WPF界面:<TextBoxx:Name="txtCardNum"LostFocus="txtCardNo_LostFocus"/>(这里是一个身份证的Textbox)<Buttonx:Name="btnCancel"Click="btnCancel_Click">取消</Button>c#后台:privatevoidtxtCardNo_LostFocus(objectsender,RoutedEventArgse){焦点一失去,点到其他Textbox或者其他控件的时候,就把TxtCardNum的值传给服务器,服务器如果查找到了就返回数据,没查到就返回错误。cardNo=txtCardNo.Text.Trim();varresponse=GetPatientInfoByCardNo(cardNo,App.User.HospitalID);if(response.Data!=null&&response.Exception.ErrorCode==5205){bind_page(response.Data);PatientModel=response.Data;}else{提示错误}}privatevoidbtnCancel_Click(objectsender,RoutedEventArgse){this.Close();}运行的时候我发现点了这个Textbox但什么也没改的时候直接点击取消按钮,它会先优先响应txtCardNo_LostFocus事件。怎么才能让点击取消的时候窗口就直接关闭了。

解决方案

解决方案二:
既然用了lostfocus事件那估计也就只能这样了你无法知道焦点离开的时候你是要点击确定还是取消而且按照顺序来说lostfocus事件肯定是优先执行的没有lostfocus又哪里来的其他控件gotfocus?。而且你这样我也觉得没有什么不妥的就算是离开焦点提示一个没有查询到数据管他点的是确定还是取消都无所谓只是提示你的做的好看一个别是弹框的那种提示就是了
解决方案三:
你给“取消”按钮注册PreviewGotKeyboardFocus事件,在事件的相应函数里面设置e.Handled=true;privatevoidCancelBT_PreviewGotKeyboardFocus(objectsender,KeyboardFocusChangedEventArgse){e.Handled=true;}

解决方案四:
你是业务逻辑错误,不要把它推给编程。要有能力先“分出层次来”,这样才能提高自己的程序设计水平,你才能跟那些浑浑噩噩的编程者显出“差别”。1.如果你在业务逻辑上没有设计过LostFocus相关的流程,为什么要写代码呢?代码可以删除了!2.反之,如果代码是有文档的、有业务逻辑的,那么现在出了问题,一定要回到业务逻辑上去考虑,而不要扯到什么编程伎俩上。例如,如果你业务逻辑能说到“如果用户有修改,则.......”这是LostFocus处理的逻辑,而你发现LostFocus代码是不管用户有没有修改都执行什么cardNo=txtCardNo.Text.Trim()的语句,这是代码跟逻辑设计不符,这样的代码就是废物代码,如果带着bug再来些更多的废物代码暂时掩盖它,就会产生恶性循环。只有你能抛开它而看到更高层次、更本质的编程原因,才能真正解决问题。而用技术来理解问题,这本身是邪的。不要太技术化,要学会站在逻辑的角度来设计软件流程,而先把编程伎俩忘掉。
解决方案五:
延迟执行,比如在你的lostfocus加个thread.Sleep(100),然后判断个全局变量,确认是否要继续执行而你按钮点击事件时,将全局变量改值
解决方案六:
比如说你遇到一个人告诉你“我是人,如果我说谎了那么我就不是人”,你认为他说话有没有自相矛盾呢?但是你自己就在随时随地扯这种毛病,还用来编程。这就需要一边学习编程一边学习整理自己的逻辑,甚至重点是后者,而编程技能其实根本不重要。

时间: 2024-09-10 08:41:59

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

页面上点击按钮不能往往PlaceHolder里累加一个textbox和listbox

问题描述 TextBoxtx=newTextBox();ListBoxlv=newListBox();protectedvoidbtnAddBox_Click(objectsender,EventArgse){ListCount++;LoadUserControl(ListCount);}privatevoidLoadUserControl(intindex){tx.ID=string.Format("TextBoxName_{0}",index);tx.Width=220;tx.He

plsql-PLSQL工具修改数据后点击提交事务按钮需要退出系统才能生效

问题描述 PLSQL工具修改数据后点击提交事务按钮需要退出系统才能生效 电脑PLSQL工具,修改了数据以后,点击提交事务按钮,按钮一直是亮,需要退出系统才能生效,如果点击了提交事务按钮,就一直是亮的,然后数据会被锁死的感觉,需要退出PLSQL工具,然后重新登陆,数据才会生效,求大神帮忙解决,现在每次都这样弄,太浪费时间了,求大家帮忙解决 解决方案 是你软件版本的问题吧,换个版本试试!

paypal集成到自己购物网站,支付成功,notify_url调用正常,INVALID状态获取成功,但是return页面需要手工点击按钮才能返回自己网站,怎么自动跳回?

问题描述 1)支付页面pay.aspx代码:protectedvoidButton1_Click(objectsender,EventArgse){Response.Write("<formaction='https://www.paypal.com/cgi-bin/webscr'method='post'name='paypal'>");Response.Write("<inputname='cmd'value='_xclick'type='hidden'

javascript设置连续两次点击按钮时间间隔的方法

  很多时候我们在实际应用中,可能并不希望按钮联系被不间断的点击,所以要限定一定的时间间隔才能够再次点击按钮,下面就通过代码实例介绍一下如何实现此功能,代码如下: 代码如下: 0 以上代码实现了我们的要求,可以限制点击按钮的间隔时间,这一效果可以扩展到其他的功能中,比如限制发帖的间隔时间等等,下面就介绍一下它的实现过程. 代码注释如下: 1.window.onload=function(){},规定文档内容完全加载完毕再去执行函数中的代码. 2.var odiv=document.getElem

js-aspnet实现类似winform的功能,点击按钮弹出窗口,原窗口重新绑定显示查询结果

问题描述 aspnet实现类似winform的功能,点击按钮弹出窗口,原窗口重新绑定显示查询结果 想通过aspnet实现一个功能,原页面有个按钮我通过showmodaldialog弹出一个窗口,窗口里面是一个表单,我希望表单的数据传递到原页面,原页面再根据这些参数,重新绑定gridview,得出查询结果,我的原页面gridview上面还有按钮,必须放在_!ispostback_里面,所以页面用session或者get方式获得参数的话,databind必须放在_ispostback_条件里面,因为

页面跳转-android关于点击按钮事件的处理

问题描述 android关于点击按钮事件的处理 首先先谢谢回答的问题的好人们,好人有好报~ 我是一个纯android新手,很纯很纯的那种,最近要交一个作业,我就想写一个时间追踪的安卓应用,因为比较出名的那几个有的付费有的用不来. 现在卡在了关于用户自己添加一个任务的问题上,附图如下: 根据我的理解,上面的学习编程啦.读书啦应该是按钮,点击就会开始自动计时,而这些都是点新增项目自己添加的 我就想知道那个新增项目要如何实现? 自己也研究了一天,现在觉得点新增肯定是跳到另一个界面,然后输入任务名称,再

使用JS代码实现点击按钮下载文件_javascript技巧

正文 有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法: 现在需要在页面上添加一个下载按钮,点击按钮下载文件. 题外话,这个下载图标是引用的 font-awesome 上面的.使用时,首先将 font-awesome 整个文件夹下载下来,利用bower或者是自己去官网上面下载都行. 将整个文件夹放在项目文件中之后,在页面上面引入css文件 <link href="libs/font-awesome-4.7.0/css/font

buffer-MFC中如何点击按钮然后复制编辑框中书写的文字。

问题描述 MFC中如何点击按钮然后复制编辑框中书写的文字. 使用了这么一段代码,结果运行的时候如果编辑框中是英文字母,只复制了第一个字母,如果是中文,复制的结果是乱码.求解具体怎么改.谢谢各位 void CMFCApplication2Dlg::OnBnClickedButCpy() { // TODO: 在此添加控件通知处理程序代码 CString source; GetDlgItemText(IDC_EDI_TEXT, source); if (OpenClipboard()) { HGLO

media-点击按钮后停止媒体播放器

问题描述 点击按钮后停止媒体播放器 我在程序中设置一个媒体播放器,有play和stop按钮,当我运行以下代码时,play按钮是没有问题的,但是当我点击stop按钮时,却得到一个强行关闭的消息.这是怎么回事呢?这是我所用使用的代码: package com.example.hellomedia;import java.io.IOException; import android.app.Activity; import android.media.MediaPlayer; import andro