读书人

控件的事件和new的先后有关问题

发布时间: 2012-03-20 14:01:11 作者: rapoo

控件的事件和new的先后问题。
请看下面的一个窗体程序。
Public Class Form2

Private Num As Integer

Public Sub New(ByVal Num As Integer)

InitializeComponent()
Me.Num = Num
NumericUpDown1.Value = Num

End Sub

Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
TextBox1.Text = NumericUpDown1.Value
End Sub

End Class
这是正常的情况,
但是这只是我的测试程序,比较简单,
另外一个程序中,ValueChanged总是发生在NumericUpDown1.Value = Num之前,
导致我没法把外部的参数传进来。
想问问,为什么同一个模式,事件的发生顺序不一样啊?

[解决办法]
应该是在InitializeComponent设置了NumericUpDown1的值,然后引发的事件并转到事件处理方法中执行,之后再转回new中的后半部分继续执行
[解决办法]

探讨

是的,就是你这样的,但是这样就造成我没法赋值了。
因为initialization里面的值是默认值,是一直不变的。
而这个默认值赋值的时候,就引发事件,就把我的成员变量的值改成了这个默认值,
因此我的new后半部分的控件值=new的参数(成员变量的传入值)就不起作用了。

那怎么解决这个传值进来的问题呢,谢谢!

[解决办法]
就这个例子来说,没看出来有什么必要使用事件。
当你编程赋值的时候,你完全可以直接再给 Textbox 赋值。何必经事件转一手呢?

读书人网 >VB Dotnet

热点推荐