在c#中如何实现
8 个解决方案
#1
首先是MainFrm窗体,在MainFrm窗体中,拖一个ListBox控件即可,MainFrm.cs的代码如下:
下面是对应的C#代码,MainFrm.cs:
public partial class MainFrm: Form//引用Middle类
{
private void MainFrm _Load(object sender, EventArgs e)//窗体的加载事件
{
Middle.sendEvent += new Middle.SendMessage(this.DoMethod);//把方法注册到时间里
}
public void DoMethod(string[] getstr)
{
//你要设置的属性
}
}
ChildFrm.cs:
public partial class ChildFrm: Form//引用Middle类
{
public ChildFrm ()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
strInfo[] = textBox3 内容+textBox4内容。。
Middle.DoSendMessage(你要改的内容strInfo);//触发事件
}
}
Middle.cs:
public static class Middle//
{
public delegate void SendMessage(string[] str);
public static event SendMessage sendEvent;
public static void DoSendMessage(string[] str)
{
sendEvent(str);
}
}
下面是对应的C#代码,MainFrm.cs:
public partial class MainFrm: Form//引用Middle类
{
private void MainFrm _Load(object sender, EventArgs e)//窗体的加载事件
{
Middle.sendEvent += new Middle.SendMessage(this.DoMethod);//把方法注册到时间里
}
public void DoMethod(string[] getstr)
{
//你要设置的属性
}
}
ChildFrm.cs:
public partial class ChildFrm: Form//引用Middle类
{
public ChildFrm ()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
strInfo[] = textBox3 内容+textBox4内容。。
Middle.DoSendMessage(你要改的内容strInfo);//触发事件
}
}
Middle.cs:
public static class Middle//
{
public delegate void SendMessage(string[] str);
public static event SendMessage sendEvent;
public static void DoSendMessage(string[] str)
{
sendEvent(str);
}
}
#2
通过工具栏拖到VS设计器上 该控件的默认访问性是protected 你把改成public 即可在其他窗体中 使用~~~
#3
楼上的最简单
改了就和VB里面一样
改了就和VB里面一样
#4
1楼是定义了个共有方法公开了私有/受保护对象
2楼直接公开了私有/受保护对象
欲解决不同线程问题,你可以使用1楼或者直接invoke
2楼直接公开了私有/受保护对象
欲解决不同线程问题,你可以使用1楼或者直接invoke
#5
public class form1
{
Form2 frm = new Form2();
public form1()
{
}
// 将Form2当作一个对象传递给Form1
public form1(Form2 frm)
{
this.frm = frm;
}
}
同时,把Form2的textbox1 的属性设置成public
那样的话就可以用 Form2的textbox1了, frm.textbox1.text
{
Form2 frm = new Form2();
public form1()
{
}
// 将Form2当作一个对象传递给Form1
public form1(Form2 frm)
{
this.frm = frm;
}
}
同时,把Form2的textbox1 的属性设置成public
那样的话就可以用 Form2的textbox1了, frm.textbox1.text
#6
补充:
必须要把Form2当作一个对象传递给Form1
必须要把Form2当作一个对象传递给Form1
#7
把this作为参数传进构造函数
#8
C#和VB的FORM在概念上完全不同的,在VB里,所有的Form等于是已实例化的全局对象,所以任何地方都可以调用form,如果在C#里要做到这样,可以把form实例化的全局变量,然后再按2楼做法就O了...
#1
首先是MainFrm窗体,在MainFrm窗体中,拖一个ListBox控件即可,MainFrm.cs的代码如下:
下面是对应的C#代码,MainFrm.cs:
public partial class MainFrm: Form//引用Middle类
{
private void MainFrm _Load(object sender, EventArgs e)//窗体的加载事件
{
Middle.sendEvent += new Middle.SendMessage(this.DoMethod);//把方法注册到时间里
}
public void DoMethod(string[] getstr)
{
//你要设置的属性
}
}
ChildFrm.cs:
public partial class ChildFrm: Form//引用Middle类
{
public ChildFrm ()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
strInfo[] = textBox3 内容+textBox4内容。。
Middle.DoSendMessage(你要改的内容strInfo);//触发事件
}
}
Middle.cs:
public static class Middle//
{
public delegate void SendMessage(string[] str);
public static event SendMessage sendEvent;
public static void DoSendMessage(string[] str)
{
sendEvent(str);
}
}
下面是对应的C#代码,MainFrm.cs:
public partial class MainFrm: Form//引用Middle类
{
private void MainFrm _Load(object sender, EventArgs e)//窗体的加载事件
{
Middle.sendEvent += new Middle.SendMessage(this.DoMethod);//把方法注册到时间里
}
public void DoMethod(string[] getstr)
{
//你要设置的属性
}
}
ChildFrm.cs:
public partial class ChildFrm: Form//引用Middle类
{
public ChildFrm ()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
strInfo[] = textBox3 内容+textBox4内容。。
Middle.DoSendMessage(你要改的内容strInfo);//触发事件
}
}
Middle.cs:
public static class Middle//
{
public delegate void SendMessage(string[] str);
public static event SendMessage sendEvent;
public static void DoSendMessage(string[] str)
{
sendEvent(str);
}
}
#2
通过工具栏拖到VS设计器上 该控件的默认访问性是protected 你把改成public 即可在其他窗体中 使用~~~
#3
楼上的最简单
改了就和VB里面一样
改了就和VB里面一样
#4
1楼是定义了个共有方法公开了私有/受保护对象
2楼直接公开了私有/受保护对象
欲解决不同线程问题,你可以使用1楼或者直接invoke
2楼直接公开了私有/受保护对象
欲解决不同线程问题,你可以使用1楼或者直接invoke
#5
public class form1
{
Form2 frm = new Form2();
public form1()
{
}
// 将Form2当作一个对象传递给Form1
public form1(Form2 frm)
{
this.frm = frm;
}
}
同时,把Form2的textbox1 的属性设置成public
那样的话就可以用 Form2的textbox1了, frm.textbox1.text
{
Form2 frm = new Form2();
public form1()
{
}
// 将Form2当作一个对象传递给Form1
public form1(Form2 frm)
{
this.frm = frm;
}
}
同时,把Form2的textbox1 的属性设置成public
那样的话就可以用 Form2的textbox1了, frm.textbox1.text
#6
补充:
必须要把Form2当作一个对象传递给Form1
必须要把Form2当作一个对象传递给Form1
#7
把this作为参数传进构造函数
#8
C#和VB的FORM在概念上完全不同的,在VB里,所有的Form等于是已实例化的全局对象,所以任何地方都可以调用form,如果在C#里要做到这样,可以把form实例化的全局变量,然后再按2楼做法就O了...