winform 传值问题

infomationtechnology 2012-08-15 08:58:15
逻辑是这样,很多窗体上都有“打印”按钮,点击之后调用一个公共的窗体选择打印机名,选择完成后返回原始窗体执行打印。 需要将原始窗体信息传递到公共窗体,然后将公共窗体的选择信息返回原始窗体,各位大虾如何做啊?
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
十二恨 2012-08-15
  • 打赏
  • 举报
回复
父窗口向子窗口 可以定义一个静态的全局变量传值。。用类名调用
子窗口向父窗口 可以在子窗口中定义一个属性 用对象调用
cjh200102 2012-08-15
  • 打赏
  • 举报
回复
分析很详细
weiweishay 2012-08-15
  • 打赏
  • 举报
回复
http://www.cnblogs.com/moss_tan_jun/archive/2011/06/12/2078971.html
  • 打赏
  • 举报
回复
传值 构造函数,利用属性传值

回传可以操作全局变量,可以返回公共窗体的属性
isjoe 2012-08-15
  • 打赏
  • 举报
回复

相当于你的原始窗体,调用公共窗体,利用构造函数传递进入你的信息

private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2("我传递的信息");
f2.SelectedAEventHandle += new DelegateSelectedA(f2_SelectedAEventHandle);
f2.Show();
}

/// <summary>
/// 利用回调显示回传的信息
/// </summary>
/// <param name="strMyData"></param>
private void f2_SelectedAEventHandle(string strMyData)
{
MessageBox.Show(strMyData);
}


相当于你的公共窗体,该窗体通过构造接受原始窗体的参数,
用户选择后,点击OK按钮通过委托调用原始窗体的函数,同时传递刚才用户的选择信息给原始窗体

namespace WindowsApplication4
{
public partial class Form2 : Form
{
/// <summary>
/// 委托事件
/// </summary>
public event DelegateSelectedA SelectedAEventHandle;

/// <summary>
///
/// </summary>
private string m_strMyData = null;

/// <summary>
/// 构造函数接收参数信息
/// </summary>
public Form2(string strMyData)
{
InitializeComponent();

this.m_strMyData = strMyData;
}

private void Form2_Load(object sender, EventArgs e)
{

}

/// <summary>
/// 当用户点击确定后
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void m_BtnOK_Click(object sender, EventArgs e)
{
if (this.SelectedAEventHandle != null)
{
this.SelectedAEventHandle("我回传的数据");
}
this.Close();
}
}

/// <summary>
/// 委托
/// </summary>
/// <param name="strMyData"></param>
public delegate void DelegateSelectedA(string strMyData);
}
yp19910928 2012-08-15
  • 打赏
  • 举报
回复
+1[Quote=引用 3 楼 的回复:]

传值 构造函数,利用属性传值

回传可以操作全局变量,可以返回公共窗体的属性
[/Quote]

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧