我想将TextBox的值从Form1传递给Form2。
此消息出现。
"Form that is not a top-level form cannot be displayed as a modal dialog box. Remove the form from any parent form before calling showDialog."
这是我的Form1
代码:
private void btnAddReceipt_Click(object sender, EventArgs e)
{
this.Hide();
using (var Ticket = new frmCustomerTicket())
{
Ticket.CustomerID = txtCustNo.Text;
ShowDialog();
}
}
这是我在Form2中的代码
public string CustomerID { get; set; }
private void frmCustomerTicket_Load(object sender, EventArgs e)
{
txtCustID.Text = CustomerID;
}
答案 0 :(得分:0)
试试这个:
private void btnAddReceipt_Click(object sender, EventArgs e)
{
this.Hide();
var Ticket = new frmCustomerTicket();
Ticket.CustomerID = txtCustNo.Text;
Ticket.Show();
}
<强> Upate 强> 删除使用块会导致Form2元素在超出范围时立即处理。
答案 1 :(得分:0)
为什么不在构造函数上执行此操作? 我的意思是你可以在你的表格2:
public partial class MyForm: Form
{
string myvar = string.Empty;
public MyForm(string a)
{
InitializeComponent();
this.myvar = a;
}
}
并且在你的表格1中你可以拥有:
using (var Ticket = new frmCustomerTicket(txtCustNo.Text))
{
Ticket.ShowDialog();
}
答案 2 :(得分:0)
哦第一个表单按钮的点击事件:
Form2 F2 = new F2(this);
F2.Show();
this.Hide();
然后以第二种形式初始化第一个表单
FormFirst F1 = new FormFirst();
public From2(FormFirst form1)
{
InitializeComponent();
F1 = form1;
}
textboxt2.text = F1.textbox.Text;
不要忘记将第一个表单的文本框的修饰符设为公开
答案 3 :(得分:0)
我认为您的问题与在表单之间传递值无关。我认为这是关于MDI Parent&amp;儿童形式。根据定义,MDI子表单不是模态的。看看这些链接:
How can i make an MDI form inactive when child form is active {
{3}} {
{3}}