我用c#作东西时在窗体2设计拉一个checkedlistbox列表!并且是可以随时添加数据!我在窗体4要调用这个控件!并且当空间在窗体2更新信息是调用的也要自动同步更新要怎么办呢?
解决方案 »
- 怎么让窗体隐藏后不在Alt+Tab中显示
- C#软件之间通信求助
- 关于数据同步的问题,求帮忙!
- 字符串 插入 使用通配符问题
- sqldatareader的简单问题
- 如何得到数据库中没有在GridView1前台显示的值?
- 4表查询超难,大家可以试下
- 寻求高手!asp.net 域验证在vs2005调试环境执行正常,但放到IIS中就不能通过验证了
- HELP+HELP+HELP+HELP:"未将对象引用设置到对象的实例" :HELP+HELP+HELP+HELP
- 我现在正在全力学习C#,但对于C#中的“在类中实现事件”我理解的不是很清楚,如下面这段代码我看的非常吃力,谁知道哪里有“C#事件”这方
- 使用飞信的VMDONTNET为什么一用到datatable就出错呢?
- C#2005连接数据库出错:"conn.ServerVersion"引发的“System.InvalidOperationException”类型的异常
checklistbox中加入新的端口在form4中的checkedlistbox也要同步自动更新!要怎么办啊
只有一个窗体处于打开状态可以将checklistbox列表数据保存,打开另一窗体时加载
把所有需要全局共享的东西就扔到这个静态类里面去。public static class Keeper{
public static Form1 form1;//Form1创建之后放这里
public static Form2 form2;//Form2创建之后放这里
……
}这样,你Form1变化的时候,如果希望Form3也变化,就去Keeper拿到Form3的引用,然后想干嘛就干嘛。
比如这个例子,你Form4想用Form2,你就Keeper.form2就拿到form2了啊,你想怎样就怎样。当然还有其他你想共享的东西就可以放在里面。Form们不必要知道彼此,只需要知道向Keeper要就行了。不知道我这么说你明白没? 具体的代码还要靠你自己去润色。
public Form1(){
if( Keeper.form1 == null ) Keeper.form1 = this;//构造的时候就把自己交给Keeper!
}
public void Update(){
/* 做了一些更新 */
//…
// 我更新的时候希望form2也更新
Keeper.form2.Update(); }
}public class Form2{
public Form2(){
if( Keeper.form2 == null ) Keeper.form2 = this;
}
public void Update()
{
//更新
}
}
正解!
因为每次读这个属性的时候,都会回到Form2中是读取的。如果想更简单一点儿,这个控件和属性声明成静态的,就连引用也不需要了。不过,运行的流程要控制好,防止未实例化之类的错误就可以了。
.Controls["checkedlistbox1"];