繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> .Net中TextBox对于焦点的控制(二)

.Net中TextBox对于焦点的控制(二)

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:这篇是对我昨天写的那篇 .Net中TextBox对于焦点的控制的补足部分,请放在一起阅读。 不知道是什么原因,这个Validating事件,有些情况下会在你不想让它发生的时候,自动发生。主要是下面几种情况: 调用Me.Close ...

这篇是对我昨天写的那篇 .Net中TextBox对于焦点的控制的补足部分,请放在一起阅读。

不知道是什么原因,这个Validating事件,有些情况下会在你不想让它发生的时候,自动发生。主要是下面几种情况:

调用Me.Close

点击Form有上角的叉来关闭窗口

在CausesValidation = False的按钮上面按回车键(用方向键移动焦点)

按空格键的时候Validating事件不会发生。)

也就是说,如果你想用Close关闭窗口,即使你的按钮和Form的CauseValidation属性设置为False,窗口还是无法被正常关闭。

在网上查到了一种解决方法,具体代码如下

Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating

If ActiveControl.CausesValidation = False Then

Exit Sub

End If

If Not IsDate(TextBox1.Text) Then

MsgBox("请输入有效日期。", MsgBoxStyle.Information)

e.Cancel = True

End If

End Sub

但是上面这段代码并不能解决直接点叉关闭窗口的问题,这个时候需要按照下面这种写法解决。

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Form1.Closing

e.Cancel = False

End Sub

这种方法可能不是很好,但至少能解决我的问题。希望对大家有所帮助。

责任编辑:admin
相关文章