首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在VB中更改ToString时,对象上的ListBox不更新

在VB中,当我们更改对象的ToString方法时,ListBox上的内容不会自动更新。这是因为ListBox控件在显示对象时,会调用对象的ToString方法来获取显示的文本。一旦对象的ToString方法被调用后,ListBox就会将返回的文本作为项的内容进行显示,而不会再关注对象本身的变化。

要解决这个问题,我们可以手动更新ListBox的内容。一种常见的方法是使用数据绑定。通过将ListBox的DataSource属性绑定到一个集合对象,然后在对象的ToString方法中返回需要显示的文本,就可以实现自动更新。

以下是一个示例代码:

代码语言:txt
复制
' 创建一个类来表示对象
Public Class MyObject
    Public Property Name As String

    Public Overrides Function ToString() As String
        Return Name
    End Function
End Class

' 在窗体中使用ListBox和按钮
Public Class Form1
    Private objects As List(Of MyObject)

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 初始化对象集合
        objects = New List(Of MyObject)()

        ' 将ListBox的DataSource属性绑定到对象集合
        ListBox1.DataSource = objects
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 创建一个新的对象并添加到集合中
        Dim newObj As New MyObject()
        newObj.Name = "New Object"
        objects.Add(newObj)

        ' 手动刷新ListBox的显示
        ListBox1.Refresh()
    End Sub
End Class

在上述示例中,我们创建了一个名为MyObject的类来表示对象,其中包含一个Name属性和一个重写的ToString方法。在窗体加载时,我们将ListBox的DataSource属性绑定到对象集合。当点击按钮时,我们创建一个新的对象并添加到集合中,然后手动调用ListBox的Refresh方法来刷新显示。

这样,当我们更改对象的ToString方法时,ListBox上的内容就会自动更新了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据绑定以及Container.DataItem几种方式与使用方法分析[通俗易懂]

大家好,又见面了,我是你们的朋友全栈君。 灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:<asp:ListBox id=”ListBox1″ datasource='<%# myArray%>’ runat=”server”> 绑定到表达式:<%#(class1.property1.ToString() + “,” + class1.property2.ToString())%> 绑定到方法返回值:<%# GetSafestring(str) %> 绑定到Hashtable:<%# ((DictionaryEntry)Container.DataItem).Key%> 绑定到ArrayList:<%#Container.DataItem %> 若数组里里放的是对象则可能要进行必要的转换后再绑定如: <%#((对象类型)Container.DataItem).属性%> 绑定到DataView,DataTable,DataSet: <%#((DataRowView)Container.DataItem)[“字段名”]%>或 <%#((DataRowView)Container.DataItem).Rows[0][“字段名”]%> 要格式化则: <%#string.Format(“格式”,((DataRowView)Container.DataItem)[“字段名”])%> <%#DataBinder.Eval(Container.DataItem,”字段名”,”格式”)%> 绑定到DataReader: <%#((IDataReader)Container.DataItem).字段名%> 当然为了方便一般使用最多的就是DataBinder类的Eval方法了.只是这样对于同一时候要绑定大量的数据效率要低一些

01

C#学习笔记—— 常用控件说明及其属性、事件

1、 窗体 的属性 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。 (3)StartPosition属性:用来获取或设置运行时窗体的起始位置。其取值及含义如表9-1 所示。默认的起始位置是WindowsDefaultLocation。 (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。 (5)Width属性:用来获取或设置窗体的宽度。 (6)Height属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。 (9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。值为true时将显示控制框,值为false时不显示控制框。 (10)MaximizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。值为 true时显示最大化按钮,值为false时不显示最大化按钮。 (11)MinimizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。值为 true时显示最小化按钮,值为false时不显示最小化按钮。 (12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Enter 键时就相当于单击了窗体上的该按钮。 (13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Esc 键时就相当于单击了窗体上的该按钮。 (14)Modal 属性:该属性用来设置窗体是否为有模式显示窗体。如果有模式地显示该窗体,该属性值为true;否则为 false。当有模式地显示窗体时,只能对模式窗体上的对象进行输入。必须隐藏或关闭模式窗体(通常是响应某个用户操作),然后才能对另一窗体进行输入。有模式显示的窗体通常用做应用程序中的对话框。 (15)ActiveControl属性:用来获取或设置容器控件中的活动控件。窗体也是一种容器控件。 (16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。 (17)AutoScroll 属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。如果此属性值设置为true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。另外当自动滚动打开时,窗体的工作区自动滚动,以使具有输入焦点的控件可见。 (18)BackColor属性:用来获取或设置窗体的背景色。 (19)BackgroundImage属性:用来获取或设置窗体的背景图像。 (20)Enabled 属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。如果控件可以对用户交互作出响应,则为 true;否则为false。默认值为true。 (21)Font属性:用来获取或设置控件显示的文本的字体。 (22)ForeColor属性:用来获取或设置控件的前景色。 (23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。值为 true时,是子窗体,值为false时,不是子窗体。 (24)IsMdiContainer 属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的容器。值为true时,是子窗体的容器,值为false时,不是子窗体的容器。 (25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。值为true时,窗体将接收按键事件,值为false时,窗体不接收按键事件。 (26)MdiChildren属性:数组属性。数组中的每个元素表示以此窗体作为父级的多文档界面(MDI)子窗体。 (27)MdiParent属性:用来获取或设置此窗体的当前多文档界面(MDI)父窗体。 (28)ShowInTaskbar属性:用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体。 (29)Visible属性:用于获取或设置一个值,该值指示是否显示该窗体或控件。值为true 时显示窗体或控件,为 false时不显示。 (30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。 2、常用的方法 下面介绍一些窗体的最常用方法。 (1)Show方法:该方法的作用是让窗体显示出来,其调用格式为: 窗体名.

02
领券