Raf*_*ari 1 .net c# visual-studio-2010 winforms
在(Form1)中我有一个设置按钮,当我点击它时,会显示一个新的表单(Form2),使用以下代码行:
private void b7_Click(object sender, EventArgs e)
{
Form3 frm = new Form3();
frm.Show();
}
Run Code Online (Sandbox Code Playgroud)
在form3中,我有6个文本框和两个按钮,保存和取消.

我要做的是向用户提供此表单,以便将必要的数据键入表单,然后单击"保存设置"按钮.在Form1中,我想访问这些文本框以获取其当前值(当用户单击保存设置时).我试图添加一个Form4并命名它(MiddleForm),我添加了6个文本框,并在Form3(上图中的表单)我写了这些行:
private void button2_Click(object sender, EventArgs e)
{
MiddleForm mf = new MiddleForm();
mf.textBox1.Text = keywrd1.Text;
mf.textBox2.Text = keywrd2.Text;
mf.textBox3.Text = keywrd3.Text;
mf.textBox4.Text = keywrd4.Text;
mf.textBox5.Text = keywrd5.Text;
mf.textBox1.Text = thelink.Text;
Close();
}
Run Code Online (Sandbox Code Playgroud)
然后我试图从Form1(我需要使用文本框值的形式)访问传递给MiddleForm的值,在Form1中,我写了这些行(仅用于调试目的)
MiddleForm mf = new MiddleForm();
MessageBox.Show(mf.textBox1.Text); // to see whether there is something
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎没有任何东西传递给mf.TextBox1

如何从Form1调用Form3的当前值(使用保存设置保存按钮保存),以便在其余代码中使用它们.
有什么帮助让这个工作?
在Form3中创建6个公共属性:
public partial class Form3 : Form
{
public string Value1
{
get { return this.keywrd1.Text; }
}
public string Value2
{
get { return this.keywrd2.Text; }
}
...
}
Run Code Online (Sandbox Code Playgroud)
Form3关闭后(但在处置之前),您可以通过属性访问文本值.正如另一个答案所指出的那样,使用ShowDialog代替Show,并在它自己的代码中关闭Form3.
private void b7_Click(object sender, EventArgs e)
{
Form3 frm = new Form3();
frm.ShowDialog();
string value1 = frm.Value1;
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |