一个窗体更新另一窗体数据 窗体A窗体B窗体B上一个按钮,点击是将窗体A的颜色数据保存起来问? 怎么在点了窗体B的按钮后,更新窗体A的颜色的配置委托?多线程?怎么实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单点的使用委托//窗体B的开头部分加如下代码,放在命名空间和类之间,也就是放在类定义外面//声明委托,参数(object sender )可以不要,这里放上是便于扩展public delegate void DoSomeHandler( object sender );//窗体B中加入如下部分,在窗体B(class)的定义内部//定义委托public DoSomeHandler DoSome;//窗体B的按钮事件代码如下,如果 private void button1_Click( object sender, EventArgs e ) { if ( DoSome != null ) { DoSome( this ); } }//窗体A中有如下代码,在里面添加你要处理颜色的代码,具体委托的代码 private void ProcessColor( object sender ) { MessageBox.Show( "处理颜色" ); }//窗体A中显示窗体B的代码如下,此时在窗体B中单击按钮,将触发上面的ProcessColor中的代码 private void btnOK_Click( object sender, EventArgs e ) { 窗体B f = new 窗体B(); f.DoSome = new DoSomeHandler( ProcessColor ); f.Show(); //此处也可为ShowDialog } 贴一下完整的吧,两个窗体各放一个button窗体Anamespace Test1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnOK_Click( object sender, EventArgs e ) { Form2 f = new Form2(); f.DoSome = new DoSomeHandler( ProcessColor ); f.ShowDialog(); } private void ProcessColor( object sender ) { MessageBox.Show( "处理颜色" ); } }}窗体Bnamespace Test1{ public delegate void DoSomeHandler( object sender ); public partial class Form2 : Form { public DoSomeHandler DoSome; public Form2() { InitializeComponent(); } private void button1_Click( object sender, EventArgs e ) { if ( DoSome != null ) { DoSome( this ); } } }} 这个方法里面的代码你要自己写啊,我用MessageBox.Show只是一个示例你在窗体B中点击按钮有没有弹出 处理颜色 的对话框呢,如果是你要做的是你保存颜色或者更新颜色private void ProcessColor( object sender ) { MessageBox.Show( "处理颜色" ); } 1 窗体A:绑定数据源方法public void GetKeyWords(){...}2 点击添加按钮:实例化窗体B:formB form=new formB(this); form.mydelegatge += new form.bindGridViewList(GetKeyWords); form.ShowDialog(this);3 窗体B的类中定义委托:public delegate void bindGridViewList(); public bindGridViewList mydelegatge;点击保存按钮:if (mydelegatge != null) { this.mydelegatge(); this.Close(); } else this.Close(); 给b窗体写个构造函数,把a窗体传过去不就得了,在b中想怎么改a就怎么改。 你要自己将数据发送给from2 人家只是show了一下信息 MDI窗体问题 对象浏览器的BUG? 关于DATASET更新数据库的问题(菜鸟级问题) winform DataGrid 删除问题! 字符串转换成对象名?请高手指点 帮我看看这些代码是不是用C#写的,如果不是,是用什么语言写的? {急}C#操作字符串的几种方式 讨论:组件(控件)和Web Service之间的区别。快来发表高见! 怎么写sqlparameter这样的集合结构啊? 关于窗体hide之后,再显示出现的一些奇怪问题。 UDP与TCP通信的优缺点 C#中按F1调用相应主题的帮助文档
使用委托//窗体B的开头部分加如下代码,放在命名空间和类之间,也就是放在类定义外面
//声明委托,参数(object sender )可以不要,这里放上是便于扩展
public delegate void DoSomeHandler( object sender );//窗体B中加入如下部分,在窗体B(class)的定义内部
//定义委托
public DoSomeHandler DoSome;//窗体B的按钮事件代码如下,如果
private void button1_Click( object sender, EventArgs e )
{
if ( DoSome != null )
{
DoSome( this );
}
}//窗体A中有如下代码,在里面添加你要处理颜色的代码,具体委托的代码
private void ProcessColor( object sender )
{
MessageBox.Show( "处理颜色" );
}//窗体A中显示窗体B的代码如下,此时在窗体B中单击按钮,将触发上面的ProcessColor中的代码
private void btnOK_Click( object sender, EventArgs e )
{
窗体B f = new 窗体B();
f.DoSome = new DoSomeHandler( ProcessColor );
f.Show(); //此处也可为ShowDialog
}
窗体Anamespace Test1
{
public partial class Form1 : Form
{ public Form1()
{
InitializeComponent(); } private void btnOK_Click( object sender, EventArgs e )
{
Form2 f = new Form2();
f.DoSome = new DoSomeHandler( ProcessColor );
f.ShowDialog();
} private void ProcessColor( object sender )
{
MessageBox.Show( "处理颜色" );
}
}}
窗体Bnamespace Test1
{
public delegate void DoSomeHandler( object sender ); public partial class Form2 : Form
{
public DoSomeHandler DoSome; public Form2()
{
InitializeComponent();
} private void button1_Click( object sender, EventArgs e )
{
if ( DoSome != null )
{
DoSome( this );
}
}
}
}
你在窗体B中点击按钮有没有弹出 处理颜色 的对话框呢,如果是
你要做的是你保存颜色或者更新颜色
private void ProcessColor( object sender )
{
MessageBox.Show( "处理颜色" );
}
2 点击添加按钮:实例化窗体B:formB form=new formB(this);
form.mydelegatge += new form.bindGridViewList(GetKeyWords);
form.ShowDialog(this);
3 窗体B的类中定义委托:public delegate void bindGridViewList();
public bindGridViewList mydelegatge;
点击保存按钮:
if (mydelegatge != null)
{
this.mydelegatge();
this.Close();
}
else
this.Close();