forma:
定义
private string xsm;
界面上添加TextBox1
按钮Button1打开弹出的模式窗口
private void tbm_findrecord_Click(object sender, EventArgs e)
{
xsm="0";//初始化xsm的值
formb sform1 = new formb(ref xsm);
sform1.ShowDialog();
if (sform1.DialogResult == DialogResult.OK)
{
TextBox1.Text = xsm;
}
else if (sform1.DialogResult == DialogResult.Cancel)
{
TextBox1.Text = "推出了";
}
}
要弹出的窗口formb的设计
定义
private string strxsm;
添加构造函数
public searchterm(ref string xsm)
{
InitializeComponent();
strxsm=xsm;
}
界面上添加name为gettext的textbox控件
确定按钮,取消按钮
当点击确定按钮时 将输入textbox控件的 值回传给原来的窗体,并在TextBox1中显示
点击确定按钮代码如下:
private void btn_ok_Click(object sender, EventArgs e)
{
strxsm=gettext.Text;
this.DialogResult = DialogResult.OK;
this.Close();
}
点击取消按钮代码如下
private void btn_cancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
现在的问题是这样弹出窗口的值不会回传,怎么样才原来的窗体中能得到弹出窗体的值?
定义
private string xsm;
界面上添加TextBox1
按钮Button1打开弹出的模式窗口
private void tbm_findrecord_Click(object sender, EventArgs e)
{
xsm="0";//初始化xsm的值
formb sform1 = new formb(ref xsm);
sform1.ShowDialog();
if (sform1.DialogResult == DialogResult.OK)
{
TextBox1.Text = xsm;
}
else if (sform1.DialogResult == DialogResult.Cancel)
{
TextBox1.Text = "推出了";
}
}
要弹出的窗口formb的设计
定义
private string strxsm;
添加构造函数
public searchterm(ref string xsm)
{
InitializeComponent();
strxsm=xsm;
}
界面上添加name为gettext的textbox控件
确定按钮,取消按钮
当点击确定按钮时 将输入textbox控件的 值回传给原来的窗体,并在TextBox1中显示
点击确定按钮代码如下:
private void btn_ok_Click(object sender, EventArgs e)
{
strxsm=gettext.Text;
this.DialogResult = DialogResult.OK;
this.Close();
}
点击取消按钮代码如下
private void btn_cancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
现在的问题是这样弹出窗口的值不会回传,怎么样才原来的窗体中能得到弹出窗体的值?
改为
class MyString
{
private string str;
public MyString(){str = "";}
public string MystringValue
{
get
{
return str;
}
set
{
str = value;
}
}
}然后把这个类的实例作为form b的参数传进去
或者你这几封装
struct Mystring
{
public string str;
}
把这个struct的对象,按照ref传到form b里面也可以
不表式strxsm是一个ref的xsm解决方式是给对话框加一个属性可以读取strxsm,然后读取对话框的这个属性或者用class把xsm包装一下,用这个包装过的class替代xsm