首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2012-03-20 
控件的事件和new的先后问题。请看下面的一个窗体程序。Public Class Form2Private Num As IntegerPublic Sub

控件的事件和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 赋值。何必经事件转一手呢?

热点排行