窗体间传值
来源:互联网 发布:php 偏移量 编辑:程序博客网 时间:2024/06/05 10:37
俩个窗体之间,是不能直接调用彼此的相应变量和控件的值的。
窗体通信有以下几种方式,
1,单项通信
即一个窗体调用另一个窗体,同时不需要新调用的窗体的返回值。
方法有:
(1),用构造函数法
在Form2定义时,定义成如下形式:
public static string array ; //定义一个字符串,保留传入的串值。
public Search(string arrList)
{
InitializeComponent();
array = arrList;
}
在Form1中TxtBox1的值传入Form2,代码如下
Form2 f2=new Form2(TxtBox2.Text);
(2)定义属性法
即在Form2中,定义一些共有属性,在Form中需要,只需调用相应属性即可。
如定义个指定字串的长度的属性:
public int Length
{
get { return lenth; }
set { Length = value; }
}
在Form1中只需如下调用语句:
Form2 f2=new From2();
int Length=f2.Length;
2,窗体间双向通信
用委托方法和SendMessage可以解决。 //SendMessage是向窗口发送消息,一直等到WndProc方法处理此消息。
新建一个WindowsApplication,创建两个WinForm.其实它们就是两个类.
每个WinForm中各加入一个Button和一个TextBox.
在WinForm2中写入代理和事件(delegate and event)如下:
//代理声明
//注意代理的参要和要调用的方法参数相同。
public delegate void SendMessage(string str);
//事件声明
public event SendMessage SendEvent;
private void btnSend_Click(object sender, EventArgs e)
{
//调用事件
SendEvent(textBox1.Text);
}
在WinForm1中写入如下代码:
private void btnShow_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
//Form2事件注册
f2.SendEvent+=new Form2.SendMessage(GetMessage);
f2.Show();
}
//代理调用的方法
public void GetMessage(string str)
{
textBox1.Text = str;
}
在点击WinForm1的Button弹出WinForm2后,在WinForm2中文本框输入文字,然后点击按钮,信息将会立刻发送到WinForm1,并显示出来.
- 窗体间传值
- 窗体间传值
- 窗体间传值
- 窗体间传值
- WinForm窗体显示和窗体间传值总结
- WinForm窗体显示和窗体间传值总结
- WinForm窗体显示和窗体间传值
- WinForm窗体显示和窗体间传值
- WinForm窗体显示和窗体间传值总结
- 窗体间传值方法
- C# WinForm窗体间传值
- 两窗体间传值方法
- C# WinForm窗体间传值
- winform窗体间传值
- 窗体间传值问题
- C# 窗体间传值
- WinForm窗体间传值
- 委托实现窗体间传值
- 代码的世界
- 发邮件功能
- 在C语言中使用正则表达式的几个API
- 第一次在这里写文章
- 使用JAVA生成图片
- 窗体间传值
- 转载:Linux文件查找命令find,xargs详述
- Android桌面组件开发之桌面快捷方式(二)
- 新人报到贴
- 8.28 经营自己的长处
- 8月 创造未来
- 天天向上
- FLEX 分页控件(转)
- 愁