通过单击按钮将TextBox的值从Form1传递到form2

时间:2013-07-12 00:45:01

标签: c# sql-server-2008

我想将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;        

    }

4 个答案:

答案 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}}