26 个解决方案
#1
#2
#3
我的form4里面要调用form2的checkedlistbox,而且当form2的
checklistbox中加入新的端口在form4中的checkedlistbox也要同步自动更新!要怎么办啊
checklistbox中加入新的端口在form4中的checkedlistbox也要同步自动更新!要怎么办啊
#4
用委托把事件转过去
#5
用委托把事件转过去
#6
怎么用啊!我才学c#不懂啊!能提供代码吗?求你拉
#7
我才学c#,不懂啊!能提供代码吗?求求拉!
#8
我才学c#,不懂啊!能提供代码吗?求求拉!
#9
两窗体同时打开状态用委托可以实现
只有一个窗体处于打开状态可以将checklistbox列表数据保存,打开另一窗体时加载
只有一个窗体处于打开状态可以将checklistbox列表数据保存,打开另一窗体时加载
#10
用Delegate或者使用事件机制(其实两者原理一样)。
#11
使用Delegate或者事件(其实两者实现的原理是一样的)。
#12
使用委托,用ref或者out传递引用。
#13
你们说的我都不懂啊!能不能简单一点或者谁能帮我提供代码啊?
#14
谁来帮我解决下啊!!
#15
最简单的方法,你弄个静态类。
把所有需要全局共享的东西就扔到这个静态类里面去。
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 static class Keeper{
public static Form1 form1;//Form1创建之后放这里
public static Form2 form2;//Form2创建之后放这里
……
}
这样,你Form1变化的时候,如果希望Form3也变化,就去Keeper拿到Form3的引用,然后想干嘛就干嘛。
比如这个例子,你Form4想用Form2,你就Keeper.form2就拿到form2了啊,你想怎样就怎样。
当然还有其他你想共享的东西就可以放在里面。
Form们不必要知道彼此,只需要知道向Keeper要就行了。
不知道我这么说你明白没? 具体的代码还要靠你自己去润色。
#16
还是不懂.能给个具体代码不?
#17
public class Form1{
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()
{
//更新
}
}
#18
这个代码写在哪里?>
#19
告诉我吧!大哥!写在哪个界面里!我真的不知道啊
#20
from难道不是对象?
一个对象的内容改变了 去通知另外一个对象
就这么简单
一个对象的内容改变了 去通知另外一个对象
就这么简单
#21
但是我不知道怎么写代码!能给我我能用的代码吗?谢谢
#22
使用委托,用ref或者out传递引用。
正解!
正解!
#23
我觉得,在Form2中,把这个checkedlistbox定义为一个只读的属性,在Form4中,得到Form2的引用就可以了。
因为每次读这个属性的时候,都会回到Form2中是读取的。
如果想更简单一点儿,这个控件和属性声明成静态的,就连引用也不需要了。不过,运行的流程要控制好,防止未实例化之类的错误就可以了。
因为每次读这个属性的时候,都会回到Form2中是读取的。
如果想更简单一点儿,这个控件和属性声明成静态的,就连引用也不需要了。不过,运行的流程要控制好,防止未实例化之类的错误就可以了。
#24
checkedlistbox list = (checkedlistbox)Application.OpenForms["Form2"]
.Controls["checkedlistbox1"];
.Controls["checkedlistbox1"];
#25
Keeper类随便放在那里都可以。
右键添加类就行了。
右键添加类就行了。
#26
建议你看看“*”写的《设计模式》中的“观察者模式”,看完后你就知道该怎么实现了。
实现以后要思考这个模式为什么要这么设计,要形成自己的观点。
实现以后要思考这个模式为什么要这么设计,要形成自己的观点。
#1
#2
#3
我的form4里面要调用form2的checkedlistbox,而且当form2的
checklistbox中加入新的端口在form4中的checkedlistbox也要同步自动更新!要怎么办啊
checklistbox中加入新的端口在form4中的checkedlistbox也要同步自动更新!要怎么办啊
#4
用委托把事件转过去
#5
用委托把事件转过去
#6
怎么用啊!我才学c#不懂啊!能提供代码吗?求你拉
#7
我才学c#,不懂啊!能提供代码吗?求求拉!
#8
我才学c#,不懂啊!能提供代码吗?求求拉!
#9
两窗体同时打开状态用委托可以实现
只有一个窗体处于打开状态可以将checklistbox列表数据保存,打开另一窗体时加载
只有一个窗体处于打开状态可以将checklistbox列表数据保存,打开另一窗体时加载
#10
用Delegate或者使用事件机制(其实两者原理一样)。
#11
使用Delegate或者事件(其实两者实现的原理是一样的)。
#12
使用委托,用ref或者out传递引用。
#13
你们说的我都不懂啊!能不能简单一点或者谁能帮我提供代码啊?
#14
谁来帮我解决下啊!!
#15
最简单的方法,你弄个静态类。
把所有需要全局共享的东西就扔到这个静态类里面去。
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 static class Keeper{
public static Form1 form1;//Form1创建之后放这里
public static Form2 form2;//Form2创建之后放这里
……
}
这样,你Form1变化的时候,如果希望Form3也变化,就去Keeper拿到Form3的引用,然后想干嘛就干嘛。
比如这个例子,你Form4想用Form2,你就Keeper.form2就拿到form2了啊,你想怎样就怎样。
当然还有其他你想共享的东西就可以放在里面。
Form们不必要知道彼此,只需要知道向Keeper要就行了。
不知道我这么说你明白没? 具体的代码还要靠你自己去润色。
#16
还是不懂.能给个具体代码不?
#17
public class Form1{
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()
{
//更新
}
}
#18
这个代码写在哪里?>
#19
告诉我吧!大哥!写在哪个界面里!我真的不知道啊
#20
from难道不是对象?
一个对象的内容改变了 去通知另外一个对象
就这么简单
一个对象的内容改变了 去通知另外一个对象
就这么简单
#21
但是我不知道怎么写代码!能给我我能用的代码吗?谢谢
#22
使用委托,用ref或者out传递引用。
正解!
正解!
#23
我觉得,在Form2中,把这个checkedlistbox定义为一个只读的属性,在Form4中,得到Form2的引用就可以了。
因为每次读这个属性的时候,都会回到Form2中是读取的。
如果想更简单一点儿,这个控件和属性声明成静态的,就连引用也不需要了。不过,运行的流程要控制好,防止未实例化之类的错误就可以了。
因为每次读这个属性的时候,都会回到Form2中是读取的。
如果想更简单一点儿,这个控件和属性声明成静态的,就连引用也不需要了。不过,运行的流程要控制好,防止未实例化之类的错误就可以了。
#24
checkedlistbox list = (checkedlistbox)Application.OpenForms["Form2"]
.Controls["checkedlistbox1"];
.Controls["checkedlistbox1"];
#25
Keeper类随便放在那里都可以。
右键添加类就行了。
右键添加类就行了。
#26
建议你看看“*”写的《设计模式》中的“观察者模式”,看完后你就知道该怎么实现了。
实现以后要思考这个模式为什么要这么设计,要形成自己的观点。
实现以后要思考这个模式为什么要这么设计,要形成自己的观点。