gpt4 book ai didi

.net - 为什么 New() 在我继承的控件上触发两次? (winforms)

转载 作者:行者123 更新时间:2023-12-04 18:09:33 25 4
gpt4 key购买 nike

步骤 1 : 创建继承控件类

Public Class Test_Control
Inherits ListBox

Public Sub New()
Items.Add("test")
End Sub
End Class

步骤 2 : 在设计器中拖动类到窗体

enter image description here

步骤 3 : 运行项目

结果 :

enter image description here

为什么会这样?!我在这里完全被难住了..我用谷歌搜索和谷歌搜索,我找不到任何解决方案或答案。

这给我带来了一些重大问题。我只是想为每个新创建的组合框添加一个初始的“选择一个...”选项。无论控件类型(文本框/组合框/列表框/等)如何,每个继承的控件类都会发生同样的事情。

如果我在 New() 中使用消息框,也会发生同样的事情。一旦我运行我的应用程序,就会出现两个消息框。

enter image description here

最佳答案

您需要告诉设计师不要序列化项目集合:

Public Class Test_Control
Inherits ListBox

Public Sub New()
Items.Add("test")
End Sub

<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
Public Shadows ReadOnly Property Items As ListBox.ObjectCollection
Get
Return MyBase.Items
End Get
End Property
End Class

就这两个消息框而言,MessageBoxes 并不是一个好的调试工具。您可能正在让 WinForms 设计器调用 new 而运行时也调用 new(或类似的东西)。

关于.net - 为什么 New() 在我继承的控件上触发两次? (winforms),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17866172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com