我对C#语言很陌生,所以请带我一点儿。我想问的很简单,但是新的,我不知道怎么做。
我有两种形式:Form1和Form2。 Form1是“默认”的,是您打开应用程序时的默认值。我在第二种形式有2个文本框和两个按钮(确定和取消)。在第一个表单中,我有一个按钮,当您单击它和文本框时打开第二个表单。我试图从表单2中的那两个文本框中获取文本并将其放在form1的文本框中,但我没有设法做到这一点。我希望当我在第二个表单中单击确定时,表单2中的那两个文本框中的文本将放在form1的文本框中,当我单击取消时,只需关闭form2即可。你能救我吗?
答案 0 :(得分:1)
您可以在Form2中创建一个公共属性,当您按下按钮时,该属性由Form1设置。
public string TextValueFromForm1 { get; set; }
在Form Load事件上,您可以将文本框的值设置为属性的值。
表单2的示例
public class Form2 : Form
{
private TextBox textBox1;
private TextBox textBox2;
public string TextValue1 { get; set; }
public string TextValue2 { get; set; }
public Form2()
{
this.Load += new EventHandler((object sender, EventArgs e) =>
{
textBox1.Text = TextValue1;
textBox2.Text = TextValue2;
});
}
}
答案 1 :(得分:0)
如果我理解你的问题:
- Form2有2个文本框(textBox1
和textBox2
)和2个按钮(btnOK
和btnCancel
)
- 如果按下btnOK
- 合并textBox1
和textBox2
的值并将其传递给Form1
- 如果按下btnCancel
- 请勿传递任何数据
我的回答简要说明:
使用事件处理程序可以轻松实现,只需连接OnFormClosing
事件并从Form2
的预定义属性中读取数据
用于说明我的答案的一些代码如下
<强> Form1.cs的强>
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
frm2.FormClosing += new FormClosingEventHandler(frm2_FormClosing);
}
void frm2_FormClosing(object sender, FormClosingEventArgs e)
{
if ((sender as Form2).textData != null)
textBox1.Text = (sender as Form2).textData;
}
}
<强> Form2.cs 强>
public partial class Form2 : Form
{
public string textData;
public Form2()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
textData = textBox1.Text + " " + textBox2.Text;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
}