Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 调整大小时未触发EventHandler_Vb.net_Winforms_Eventhandler - Fatal编程技术网

Vb.net 调整大小时未触发EventHandler

Vb.net 调整大小时未触发EventHandler,vb.net,winforms,eventhandler,Vb.net,Winforms,Eventhandler,我创建了这样一个事件: Private Handler1 As New EventHandler(AddressOf resize_page) AddHandler Main.Resize, Handler1 然后在我的sub中添加如下内容: Private Handler1 As New EventHandler(AddressOf resize_page) AddHandler Main.Resize, Handler1 然后我有一个潜艇来处理它 Private Sub re

我创建了这样一个事件:

Private Handler1 As New EventHandler(AddressOf resize_page)
  AddHandler Main.Resize, Handler1
然后在我的sub中添加如下内容:

Private Handler1 As New EventHandler(AddressOf resize_page)
  AddHandler Main.Resize, Handler1
然后我有一个潜艇来处理它

Private Sub resize_page(){
 ' do something
}
当我调整窗体大小时,我的子例程从未被调用。其中的动作永远不会被执行。我甚至把一个MessageBox放在它的第一行,我的消息永远不会弹出,所以我知道它没有被调用


为什么它不发射?

主要指什么

我猜您将处理程序添加到错误的对象。 您希望将处理程序添加到表单中,以便:

AddHandler Me.Resize, Handler1
或许

 AddHandler [Yourforminstance].Resize, Handler1
你似乎把语言弄混了?还是只有我?哈哈

应该是

    Private Sub resize_page()
      'Code here
    End Sub

事实证明,这是一个奇怪的事件组合,我仍然无法解释或理解,但我最终找到了它的底部,删除所有内容并向后追踪

我在这个应用程序中有几个模块,每个模块打开一个面板,占据整个表单的宽度和高度(只有一个表单),所以它就像一个“页面”。当用户完成页面时,他点击一个关闭按钮,该按钮将处理该模块中的所有内容。因此,他实际上是在关闭页面并转到另一个页面。因为每一页都占据了表单的整个宽度和高度,所以我希望每当表单大小发生变化时,它都能扩展以填充表单。因此,每个模块都有一个事件侦听器,用于侦听“主”窗体的大小

事情是这样的:

我在第一页上创建了一个监听器,这样它就可以调整自身大小(效果很好)

我在第二页创建了一个监听器,这样它就可以调整自身大小,但我无意中调用了该页第一页的监听器。所以它有两个监听器,没有抛出错误,因为第一页的resize子页面被错误地公开而不是私有

第3页的事件监听器是一个无法工作的监听器,尽管它的创建方式与第一页的一样

在向后追踪之后,我在第2页发现了正在调用第1页上的sub的侦听器,并将其删除。一旦我删除它,第3页上的侦听器就开始正常工作。我仍然不明白为什么,因为即使第一页处理掉了它的元素,它的resize子元素(它是公共的)应该仍然可以从第二页访问。当页面被释放时,我将删除事件侦听器以及其他所有内容。然而,第2页上有一个链接打开了第3页,而没有处理第2页,这不知何故阻止了第3页的侦听器被触发

不管怎么说,事情就这么简单,现在一切正常,所以我要继续


谢谢你提供的信息。

你在哪里/何时/如何筹集资金??表单都有自己的调整大小事件-不需要自定义事件。
AddHandler Me.resize,Handler1
。您的
resize_页面
方法看起来非常像c。考虑只重写OnResiSe方法。您可以调用AdHANDEME。ResiZePaysRoRy的大小、地址的大小,子上的括号不属于那里。+ 1。感谢您分享您的解决方案。请不要忘记接受回答,让其他成员知道问题已经解决,不需要更多关注。