【问题标题】:Adding a list (T) property to a inherited panel class将列表 (T) 属性添加到继承的面板类
【发布时间】:2020-12-11 04:28:30
【问题描述】:

我对使用类进行编程非常陌生。我正在建立一个新程序,并希望给它一个新的、良好的结构,并希望与类一起工作。但是,我现在被困了两天......我有一个从面板继承的对象类。我想添加一个包含信息的列表。 IT 似乎几乎可以工作,但我主窗体中的属性窗口也显示了信息收集编辑器,但我收到了一个我似乎无法摆脱的错误。我做错了什么。

错误信息:

严重性代码描述项目文件行抑制状态 错误 Resx 文件无效。无法加载类型 System.Collections.Generic.List`1[[KRE_Interface.Info, KRE Interface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 用于 .RESX 文件。确保已将必要的引用添加到您的项目中。第 915 行,位置 5。KRE 接口 D:\Dropbox\Dropbox\kre\KRESoftware\Alma 1 接口\20200820 KRE 接口 V6\KRE 接口\frmMain.resx 915

我的班级代码:

 
Public Class RbGroep
    Inherits Panel

    Private m_ItemsInfo As List(Of Info)

    Public Sub New()
        ItemsInfo() = New List(Of Info)
    End Sub

    Property ItemsInfo() As List(Of Info)
        Get
            Return m_ItemsInfo
        End Get
        Set(ByVal value As List(Of Info))
            m_ItemsInfo = value
        End Set
    End Property
End Class
<Serializable()>
Public Class Info
    Public Property Order As Integer
    Public Property RbName As String
End Class

【问题讨论】:

  • 该错误是针对不应包含代码的 .resx 文件发出的。也许你的项目布局有问题?
  • 我将从一个全新的 fproject 和空表单开始..
  • 我尝试了一个完整的空表单项目,我得到了相同的结果...我在表单上插入了一个按钮和类...我的项目如何“布局”?
  • 您正在向 WinForms GUI 元素添加一个属性 - 一个控件。发生这种情况时,自动生成的设计器类(包括 .resx)将默认尝试序列化属性的默认值。如果您不打算这样做,解决它的最快方法是赋予属性以表明 .NET 不需要序列化它。有关信息,请参阅this answer
  • 由于您是编程新手,我建议您不要从继承/扩展 GUI 类开始 - 这会使事情变得更加复杂。最好通过使用它们按原样开始学习这些 GUI 元素。

标签: vb.net list class properties


【解决方案1】:

我让它与 Sean Kelly 的信息一起工作。非常感谢。仅:在课堂上我尝试访问包含信息的列表,制作一些无线电子弹。

       For i = 0 To amount_of_rb
        Dim newrb As New KRERadiobutton
        newrb.Name = "rb" & i
             newrb.Text = ItemsInfo(i).RbName
              newrb.Tag = itemsinfo(i).Order
        newrb.Tag = i
        newrb.Location = New System.Drawing.Point(40, 20 * i)
        AddHandler newrb.CheckedChanged, AddressOf RadioButton1_CheckedChanged
        Me.Controls.Add(newrb)
    Next

itemsinfo(i) 的行给了我错误。有人知道如何处理这些 bvariables 吗?

【讨论】:

  • 同时我在for循环的边界发现了一个错误。我没有识别出越界错误...但是,在构建表单时,我的 resx 错误又回来了...我以为我已经重建了它并且一切正常,但现在它又回来了....有点沮丧.....:)
【解决方案2】:

将此行添加到包含您的类的 .vb 文件的顶部: Imports System.Collections.Generic

【讨论】:

  • 感谢您的回答。我将它添加到类文件甚至我的 mainForm 代码中,但它直接变灰,因为它没有被使用......而且,它也没有修复任何东西...... Pitty......也许它还需要一个使用它的小代码更改?
猜你喜欢
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 2023-02-13
  • 1970-01-01
  • 2011-04-04
相关资源
最近更新 更多