类更新主窗体中的控件?

[复制链接]
查看11 | 回复5 | 2011-9-13 07:04:12 | 显示全部楼层 |阅读模式
语言:VB.net描述:项目中有N个窗体,有1个类(ClassA.vb),这些窗体都需要这个类,且部分窗体需要反复多次的创建ClassA.vb的实例。问题:在类中的一段代码(希望直接更新Form1中的ListBox)Form1.ListBox.Item.add(\"xxxxxxxxx\"),但运行结果是Form1中的ListBox没显示\"XXXXXXX\"后来我在ClassA.vb中加入一段代码:Form1.ListBox.Item.add(\"xxxxxxxxx\")msgbox(Form1.ListBox.Count)结消息框显示的是“1”,表示添加成功的,请教如何处理这个问题
回复

使用道具 举报

千问 | 2011-9-13 07:04:12 | 显示全部楼层
直接更新是不行滴~~winform的控件不是线性安全的,你无法直接访问独立线程里的控件属性,首先你需要以个代理,然后使用控件的Invoke/beginInvoke方法来调用代理。
回复

使用道具 举报

千问 | 2011-9-13 07:04:12 | 显示全部楼层
不知道不知道
回复

使用道具 举报

千问 | 2011-9-13 07:04:12 | 显示全部楼层
创建ClassA.vb的实例。追问已经是ClassA.vb的实例了,我是在ClassA.vb的实例里边控制给Form1.Listbox添加项目,我可以确定的是,已经添加进去了,因为在添加完成后我msgbox(Form1.listBox.items.Count)后返回值是“1”。
回复

使用道具 举报

千问 | 2011-9-13 07:04:12 | 显示全部楼层
ListBox.Update();应该是这样,或者类似。要不就是Form1.Update();追问在ClassA.vb的实例里这样好像不行哦,我试过了...
回复

使用道具 举报

千问 | 2011-9-13 07:04:12 | 显示全部楼层
楼主,你提供的问题我已经帮你找到了解决问题的方法,请查看参考链接参考资料:ww.baidu.com/。http://www.ibeifeng.com/goods.php?id=128。HTMA
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行