日期:2014-05-18  浏览次数:20778 次

在vb里从一个窗体form1得到另一个窗体form2中控件的值,直接写form2.text1.text就可以,在c#中如何实现
在vb里从一个窗体form1得到另一个窗体form2中控件的值,直接写form2.text1.text就可以
在c#中如何实现

------解决方案--------------------
首先是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);
}
}
------解决方案--------------------
通过工具栏拖到VS设计器上 该控件的默认访问性是protected 你把改成public 即可在其他窗体中 使用~~~
------解决方案--------------------
楼上的最简单
改了就和VB里面一样
------解决方案--------------------
1楼是定义了个共有方法公开了私有/受保护对象
2楼直接公开了私有/受保护对象

欲解决不同线程问题,你可以使用1楼或者直接invoke