text.focus();
直接return 呀
直接return 呀
解决方案 »
- 用C#做Windows窗体程序怎么样打包成一个安装包?我用的是2010
- .net位图编辑器怎么用啊?如图
- 如何取得Clipboard中的圖片啊? 急用!!!!
- 怎么逃出循环体???
- C#里面的treeview控件那下?最新版的.
- web下的水晶报表怎么没有导出的(word,excel)功能
- wince6.0下,.net不支持异步委托,用什么办法可以实现以下功能?
- GridView 中添加ButtonField 后 每行的button的代码如何写,在什么地方写?
- 写的一个windows服务,发布的时候老是应用程序验证未成功。日志提示标识不匹配。
- 如果是高手的话,那这个问题就不难了~!~!(最后20分,体谅)
- 如何获得一个表中的几个列(要过滤掉一些)
- 样式表的问题?
如果你在textbox_leave()
事件响应中,加入下面的语句能不能达到你的要求{
if ( textbox数据不合法?true:false)
{
textbox.Focus();
return; -->直接return,不做下面的事情
}
... //下面是正常的操作
}
这样能不能达到效果
定义一个私有变量
在textbox_leave()根据验证结果对该变量付值
而在
listview_click()、tabControl_SelectedIndexChanged()、
等等事件中先判断该值是不是通过验证
是则继续
否则退出事件
我做了focus()后同样会激发listview_click()、tabControl_SelectedIndexChanged()
你说的我也想过,虽然可以,但用起来很麻烦
在你的类里面加个私有标记
private bool notDoIT=false;
然后在你focus之前把 notDoIT=true;
最后你把实现的那几个事件响应listview_click()、tabControl_SelectedIndexChanged()
里面都加上一句话:if (notDoIT==true) return;
这样你满意了吧!?
this.listview.Click -= new System.EventHandler(this.listview_click());
this.tabControl1.SelectedIndexChanged -= new System.EventHandler(this.tabControl1_SelectedIndexChanged);试试看,行不行!
this.listview.Click -= new System.EventHandler(this.listview_click);
不关Validating的事吧?你做完Validating同样会激发listview_click()、tabControl_SelectedIndexChanged()的哦谢谢大家回答
不好意思,我只能想到这个办法了
如果有更好的办法,也请通知我
:)
但在去掉事件后,下次不就用不了这个事件了?
的思路也有道理,但是需要动态添加事件处理函数
我曾经也碰到过类似版主所提的问题,最初的解决方法也如你所提议的,但是实际结果是很不稳定,有时候程序运行久一点,甚至会出现死循环,后来只好改为用布尔变量来控制,虽然麻烦但绝对有效。
如果是WEB可以进行CSS控制,我觉得这种强制每个控件都要求TEXT——LEAVE判断不好