首页
学习
活动
专区
工具
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上的内容就会自动更新了。

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

相关·内容

VB.net中Listbox

1.Listbox有什么属性与方法 VB.NET 中的ListBox控件是一个常见的用户界面元素,用于显示一个可滚动的列表,用户可以从中选择一个或多个项目。...Listbox初始化、添加、删除和清空 初始化 在 Windows Forms 设计器中,你可以直接拖拽一个ListBox控件到你的窗体上。...Listbox如何设置界面外观 在 VB.NET 中,设置ListBox控件的界面主要涉及调整控件的属性,如大小、位置、背景色、前景色、字体等。...不过,对于更复杂的界面布局和动态内容,代码设置通常更加灵活和强大。 4.Listbox读取的数据 在VB.NET中,读取ListBox控件中的数据可以通过几种不同的方式来实现。...这样,你可以直接从数组或列表中读取数据,而不是从ListBox中读取。这种方法在处理大量数据或需要频繁访问数据时可能更有效。

41710
  • VB学习笔记(基础知识)(一)「建议收藏」

    End Sub (由于Markdown的代码块不支持VB所以这里用VB.Net代替) Ps:事件名称都是由VB设定好的,但是可以更改,即为该对象的Name属性(为编写方便,推荐使用有意义的英文单词作为对象名称或者不改变...Name属性) 对象方法 在传统的程序设计中,过程与函数是编程语言的主要部件。...窗体上显示“Good Morning” 窗体 窗体的属性 属性(常见的):1 AutoRedraw (下面出现的所有代码中的对象或对象名称均用OB(即object的缩写)代替) OB.AutoRedraw...Visual Basic简单程序设计基础知识 一个语句的长度最长不超过1023个字符,在Visual Basic中,下划线(_)是续航符 赋值语句 赋值语句一般格式为: [Let] 目标操作符 = .....数据类型 1.字符串(String) 字符串是很多编程语言中十分常见的一种数据类型,字符串一般在双引号里例如:“Hello,World” 而VB中的字符串又可以分为定长字符串与变长字符串,变长字符串可以为

    1.6K10

    《深入浅出WPF》学习笔记之深入浅出话Binding

    Source 用于指定数据源为后台数据对象、集合 ElementName 用于指定“数据源”为界面上某个控件的某个属性   注意:   在C#代码中可以访问XAML代码中声明的变量,但XAML代码中无法访问...TwoWay 源↔目标 无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。 OneWay 源→目标 仅当源属性发生更改时更新目标属性。...OneTime 仅当应用程序启动时或 DataContext 进行更改时更新目标属性。 OneWayToSource 目标→源 在目标属性更改时更新源属性。...(Dependency Object)   *容器的DataContext (WPF默认使用的源)   *ElementName指定源:在C#代码中把对象的Name作为源赋给Binding   *RelativeSource...DataContext的用法:   *当UI上多个控件Binding同一个对象时   *当Source对象不能被直接访问时——比如B窗体内的控件想把A窗体内的控件当做Binding源,但A窗体内的控件是

    5.7K10

    FileSystemWatcher 监视指定目录中的变更

    .Net框架类库中的FileSystemWatcher如它的名称一样是一个用于监视文件系统变化的一个控件。使用 FileSystemWatcher 监视指定目录中的更改。...可监视指定目录中的文件或子目录的更改。可以创建一个组件来监视本地计算机、网络驱动器或远程计算机上的文件。...例如,若要监视文件 MyDoc.txt 中的更改,请将 Filter 属性设置为“MyDoc.txt”。也可以监视特定类型文件中的更改。...例如,若要监视文本文件中的更改,请将 Filter 属性设置为“*.txt”。 可监视目录或文件中的若干种更改。...//监视的目录中改变文件或目录时引发的事件             //监视的目录中的文件或目录的大小、系统属性、             //上次写入时间、上次访问时间或安全权限进行更改时

    65530

    c#中开发ActiveX的学习笔记

    严格意义上讲,c#是不能生成纯正ocx控件的,我们在vs.net中新建项目时,也找不到专门的"ActiveX项目"新建项,最多也只就能新建"类库"得到一个dll而非ocx(因此我们也无法用传统的regsvr32...3.开发步骤: (1)新建一个类库 (2)修改项目的"属性",在“生成”选项中把“输出”中的“为com互操作注册”勾中,然后再到“应用程序”选项中找到“程序集信息”按钮,点击它,在弹出的界面中勾中“使程序集...#endregion这一段的内容是固定的,不要修改,其它内容根据自己的业务要求自行修改,另外类前面要加上Guid的标识,以便网页调用时,能用CLSID="xxx"来调用 基本上这样弄完后,就可以在网页中...,项目编译后vs.net会自动将bin\debug\xxx.dll调用regasm注册,但在别人机器上就不行了,为了能在调试时模拟其它机器的运行结果,可以在编译后,手动用类似 regAsm.exe D:...,但是这样调试起来不太方便,另外注册/反注册时的RegAsm.exe要起开发环境中的版本一致(比如你开发时设置是64位版本,那么反注册也要用64位版本的RegAsm.exe) 另外,我们也不可能在每个客户机上手动用

    1.5K50

    Python tkinter快速可视化开发GUI界面指南:详细教程(附带工具)

    ListBox 列表框对应Python的Listbox,行为也类似,可以在设计阶段设置初始列表。...打开VB6,新建一个标准EXE工程,在窗体上设计自己的GUI布局,这个工作估计没有VB基础的同学都可以完成,同时可以设置相应的控件属性。...2.8 如果程序有多个GUI界面,可以在VB工程中添加窗体,就可以选择产生 哪个窗体的对应代码。...如果输出的是面向对象代码,则可以在界面派生类Application中直接访问 对应的控件。...的GUI布局和设计,可以在VB界面上设置 控件的一些属性,最终自动生成必要的代码(包括回调函数框架),代码 生成后仅需要在对应的回调函数中增加相应的逻辑功能代码即可。

    10.1K51

    C# Eval在aspx页面中的用法及作用

    当然,ASP.NET 2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。...Bind 方法支持读/写功能,所以Bind 函数用于双向(可更新)绑定。该方法可以检索数据绑定控件的值并将任何更改提交回数据库。 XPath 方法支持对XML类型的数据源提供支持。...,也可以是一个带返回值的C#或者VB.NET方法,还可以是某个控件的某个属性的值,也可以是C#或者VB.NET对象的某个字段或者属性的值等等。...三,可以将数据绑定表达式包含在Javascript代码中,从而实现在Javascript中调用C#或者VB.NET的方法。...,例如ListBox等,或者Repeater,DataList,GridView这样的控件等,此时只需要把属性DataSource='' 。

    7.2K20

    【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题

    Static Resource - StaticResource 的值在加载时确定Dynamic Resource - 在运行时更改属性值的情况下使用。7.WPF中控件的分类?...Command 对象不包含要执行的功能。 这消除了命令定义和功能之间的直接联系,并促进了松散耦合。 当需要根据用户请求实现操作时,命令模式是处理对象的最佳模式。...这会导致直到在运动时需要它时才查找资源。 一个很好的例子是对稍后在 XAML 中定义的资源的前向引用。 另一个例子是直到运行时才会存在的资源。 如果源资源字典发生更改,它将更新目标。...当您在根元素上设置 FontSize 时,它适用于下面的所有文本块,除非在元素中覆盖该属性值。 更改通知 ncyObject* 继承的方法。...当您在根元素上设置 FontSize 时,它适用于下面的所有文本块,除非在元素中覆盖该属性值。 更改通知 依赖属性具有内置的更改通知机制。 通过在属性元数据中注册回调,您会在属性值更改时收到通知。

    53222

    基于sliverlight + wcf的web 文字版IM 示例

    ,当前在线"等常见功能区 第三行:显示当前聊天对象以及"加为好友","从好友列表中删除"二个按钮 第四行: 打字聊天栏 第五行:发送按钮 二、机制 a.采用wcf通讯,silverlight调用wcf得到返回结果和发送聊天内容...,wcf与数据库交互----即silverlight以wcf为桥梁来操作数据库 b.聊天记录的刷新采用Timer定时器,每隔5秒通过调用wcf更新 c.在线列表利用website中的Global全局字典来实现...,每登录或注销一个用户时,均通过wcf向该字典中插入或删除指定key的"记录" 三、一些小技巧: a.Ctrl+回车 键发送的实现代码: private void txtContent_KeyDown(...website中的wcf做了中转,xap加载时就先利用wcf取回当前Ip,呵 四、代码 代码有点乱,也相对比较长,关键代码全部折叠贴在下面了: <UserControl xmlns:controls...()); } } /**//// /// 点击"我的好友"时,更新列表 /// </summary

    1.1K60

    C#进阶——从应用上理解异步编程的作用(async await)

    ; //步骤7:子线程运行,不阻塞主线程 } 这里用当前线程睡眠来模拟耗时工作 3.同步实现方式:      运行结果: 很明显以上就是同步实现方法,在运行以上代码时,会出现UI卡住了的现象...,正确输出,但是在主线程挂起的时候,UI还是在假死,因此没有起到优化的作用。....Items.Add(DateTime.Now.ToString("T") + "进入耗时函数前,线程" + Thread.CurrentThread.ManagedThreadId); //步骤5:在主线程运行...那为啥叫异步呢,因为执行到await时不发生阻塞,直接跳过等待去执行其他的,当await返回时,又接着执行await后面的代码,这一系列的运行都是在主调线程中完成,并没有开线程等待。...所以如果耗时函数不开一个线程运行,一样会阻塞,没有完全利用异步的优势。 那么,await是在主线程等待,那其为什么没有阻塞主线程呢?我个人觉得其是利用委托的方式,后面再去揪原理吧!

    69830

    在VB.net中,一维数组排序有什么方法

    在VB.NET中,你可以使用多种方法对一维数组进行排序。 以下是一些常见的方法: 1.使用Array类的Sort方法 Array.Sort 方法是最简单且直接的方式。...不区分大小写 根据你的具体需求(例如是否需要保留原始数组、是否需要自定义排序规则等),你可以选择最适合的方法。...VB.NET和C#通用知识点学习笔记 序 列表 1 在VBA或VB.net中Split()与Replace()的用法 2 在VB.net中,List(of string())与List(of List(...of string))有什么区别 3 VB.net中,List有什么方法与属性 4 在VB.net中,Stopwatch有什么属性与方法 5 VB.net的多线程System.Threading 6 VB.NET...中,多线程的学习笔记(一) 7 VB.net中Listbox 8 在VB.net中,数据去重有什么方法

    41710

    C# Web控件与数据感应之 Control 类

    ----关于数据感应 数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,诸如 ListControl 类类型控件,在我的文章《C# Web控件与数据感应之 ListControl 类》..., 生成数据源需要利用 ADO.NET 中的数据提供者对象包括IDbConnection、IDbCommand、IDbDataParameter等,如何使用这些对象请参考我的文章: 《C#实现 IDbConnection...string 对应数据库的连接字符串 3 sql string 要执行的SQL语句命令行 4 paras ArrayList 要赋值的参数对象,逐个添加到ArrayList里,请注意参数为实体数据参数对象...3 text nvarchar(100) 存储的显示值 用户可以看到的选择时的呈现值 4 sortid int 排序号 调用 假设前端 UI 有 ID 为 TB 的 TextBox (文本框)...小结 范例中所需数据库驱动链接库,请下载我的资源: https://download.csdn.net/download/michaelline/89235824 本方法适用于所以对应说明表中的 Control

    7910

    听音乐不过瘾?自制一个音乐播放器!【附带函数源码】

    本文讲解了音乐播放器的基本控件的函数编写及开发思路 最近在学习C#的GUI编程时想着自制一个播放器,说干就干。...那么对于使用C#自己开发一个音乐播放器,首先应该了解的当然就是播放器的基本构成了,毕竟知己知彼方能百战不殆嘛,和我们平常使用的音乐播放器一样。...在界面设计完成以后,就是后端函数的书写操作了, 打开音乐文件控件函数 该函数的目的是为了我们从系统文件中添加音乐文件。...其中需要注意的是:我们需要设置音乐的起始默认打开位置和所选择的音乐格式,一般来说音乐的格式有mp3、WAV、flac等,在属性中设置音乐格式时应注意,每一个格式应该使用分号进行分割开。...musicPlayer.Ctlcontrols.play(); } 点击下一曲控件函数 该函数的作用是:当我们点击上一曲的时候,可以根据当前播放的音乐列表,播放列表中的上一首歌曲。

    1.5K30

    Silverlight数据绑定IValueConverter学习笔记

    先回忆一下aspx中的处理: 在aspx中,可以直接在后台定义一个变量,然后前台就可以用来将其"绑定"html控件上,比如下面这样,实在是很方便: using System; namespace...要想直接将后台的变量绑定到某个控件上却是行不通的,通常我们得先定义一个类,然后在类里定义属性,才能把类实例的属性绑定到控件: 简单绑定: 代码 using System; using System.Windows...绑定集合(数据集): 很多应用场合中,数据来源不仅只有一个实例(或一条记录)--比如从数据库中检索的记录,这时如果想绑定数据并实现自动更新,应使用集合绑定(类似于aspx中的DataSet或DataTable...,都是将数据原封不动的绑定并显示,如果我们希望在绑定时,能对数据的输出做一些变化,比如:代表性别的"1,0"输出时希望变成"男,女",该怎么办呢?...(silverlight中可不允许象aspx那样用ToString()=="1"?"

    94070

    WPF 数据绑定实例一

    前言: 数据绑定的基本步骤: (1)先声明一个类及其属性 (2)初始化类赋值 (3)在C#代码中把控件DataContext=对象; (4)在界面设计里,控件给要绑定的属性{Binding 绑定类的属性...LostFocus 控件失去焦点的时候更新源值 PropertyChanged 绑定的目标值改变时更新。 实例运行后界面如下: ?...Task.Delay()实质创建一个运行给定时间的任务,Thread.Sleep()使当前线程休眠给定时间。 反编译Task.Delay(),基本上讲它就是个包裹在任务中的定时器。...Task.Delay()和Thread.Sleep()最大的区别是Task.Delay()旨在异步运行,在同步代码中使用Task.Delay()是没有意义的;在异步代码中使用Thread.Sleep()...,不然这次赋值,在界面不更新 { this.DataContext = new Student() { Name = "222",

    83620
    领券