读书人

两个窗体之间传值的有关问题

发布时间: 2013-11-26 22:51:31 作者: rapoo

两个窗体之间传值的问题
两个窗体之间传值的有关问题
两个窗体之间传值的有关问题

图一窗口点击圈中的按钮,打开图二的窗口.
问题:如何在图二窗口当按下确定按钮,将图二的textbox内容传递到图一的textbox, 思路是有,但是窗体之间传递没弄懂 ,谢谢!
[解决办法]
你可以用委托,在第二个窗台里面,实现第一个窗台里面定义的委托;或者你用单例模式做数据存储及传递。
[解决办法]


public partial class ShowInsert : Form
{
public ShowInsert()
{
InitializeComponent();
}

private BtnType btnSelectType;
/// <summary>
///
/// </summary>
public BtnType BtnSelectType
{
get { return btnSelectType; }
set { btnSelectType = value; }
}

private string listTeShuYaoQiu = string.Empty;
/// <summary>
/// 特殊要求
/// </summary>
public string ListTeShuYaoQiu
{
get { return listTeShuYaoQiu; }
set { listTeShuYaoQiu = value; }
}

private string listBiaoJiHaoMa = string.Empty;
/// <summary>
/// 标记号码
/// </summary>
public string ListBiaoJiHaoMa
{
get { return listBiaoJiHaoMa; }
set { listBiaoJiHaoMa = value; }
}
/// <summary>
/// 清空
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnClear_Click(object sender, EventArgs e)
{
rTxtInfo.Text = string.Empty;
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOK_Click(object sender, EventArgs e)
{
if (BtnSelectType == BtnType.BtnBiaoJiHaoMa)
{
ListBiaoJiHaoMa = rTxtInfo.Text.Replace("\n", ",");
}
else if (BtnSelectType == BtnType.BtnTeShuYaoQiu)
{
ListTeShuYaoQiu = rTxtInfo.Text;
}
this.DialogResult = DialogResult.OK;


}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
/// <summary>
/// 窗体初始化
/// </summary>
private void Init_Load()
{
if (BtnSelectType == BtnType.BtnTeShuYaoQiu)
{
rTxtInfo.Text = ListTeShuYaoQiu;
this.Text = "特殊要求";
}
else if (BtnSelectType == BtnType.BtnBiaoJiHaoMa)
{
if (ListBiaoJiHaoMa.IndexOf(",") > -1)
{
rTxtInfo.Text = ListBiaoJiHaoMa.Replace(",", "\n");
}
this.Text = "标记号码";
}
}
/// <summary>
/// 窗体加载事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ShowInsert_Load(object sender, EventArgs e)
{
Init_Load();
}
}
}


[解决办法]
这么麻烦干嘛啊!
根据窗体二的DialogResult 来判断是否需要把查询条件返回就OK了
窗体二定义一个全局
Public string Condition
{
get{return txt.text.Trim();}//txt是你窗体二查询条件控件。
}
窗体二确定按钮中返回:DialogResult = System.Windows.Forms.DialogResult.OK;

窗体一种判断如果返回的是OK,那么直接用窗体二的实例.Condition就拿到你要的条件了!

[解决办法]

定义一个静态类
//public static class common
{
public static string content;
}
//第二个窗体中
common.content=textBox1.text;

//第一个窗体中
textBox.text=common.content;

[解决办法]
http://www.cnblogs.com/cosoft/archive/2011/08/08/2130659.html

[解决办法]
web做多了吧,winform不存在传值问题。都在内存里,控制访问权限就行了(public)。问题是要怎么找到相应的对象。
[解决办法]
http://blog.csdn.net/yuekunge/article/details/9171301
[解决办法]
在窗体2中实例化窗体1类,就可以访问窗体1中的属性了。这位同学应该是GIS专业的吧

读书人网 >C#

热点推荐