【问题标题】:Passing data from textboxes of one form to datagridview of another form将数据从一个表单的文本框传递到另一个表单的datagridview
【发布时间】:2015-04-02 09:56:27
【问题描述】:

Form1 NewPage 有一个 datagridview 和两个按钮 AddEntry 和 EditEntry.Form2 AddEntry 有 6 个文本框和 ok 按钮。 当我点击 AddEntry 按钮时,form2 将打开。当我在文本框中输入一些数据然后单击确定时,它必须添加到 form1 的 datagridview。

我在 AddEntry Button 后面编写了这段代码。我现在可以从文本框中获取数据。

public void AddEntryBtn_Click(object sender, EventArgs e)
        {
            string x = label4.Text;
            using (var obj_Addentry = new AddEntry(x))
            {
                obj_Addentry.ShowDialog();
            }
            this.Close();
        }

当我单击 EditEntry 按钮时,所选行的数据将出现在要编辑的文本框中。但问题是,当我在 form2 中单击确定按钮时,什么也没做,因为我没有将数据添加到后面的 datagridview 的代码form2的ok按钮。将数据添加到datagridview的代码在form1的AddEntry按钮后面。

我应该写什么来将数据添加到form2的ok按钮后面的datagrid视图而不是写在form1的AddEntry按钮后面?

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    需要通过id发送所有Text box的值,然后在page 2中使用Query String取值,全部使用grid view中的值。

    示例方式: 第 1 页:

     int ID = Convert.ToInt32(txtID.Text);
            string url = "Page2.aspx?id=" + ID;
            string fullURL = "window.open('" + url + "', '_blank');";
            ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", fullURL, true);    
    

    第 2 页:

    if (!IsPostBack)
            {
                ID = Convert.ToInt32(Request.QueryString["id"]);
                lblid.Text = ID.ToString();
            }
    

    【讨论】:

    • OMG @Nani 是关于赢取表格而不是网页。
    【解决方案2】:

    全局保存您的值并在任何地方访问它。 您为此创建课程。

    参考这个Global variables class

    还有这个C# - Winforms - Global Variables

    【讨论】:

      【解决方案3】:

      1.以 AddEntry 形式写下委托和事件。 2.单击form2引发事件中的确定按钮 3.在form1 Newpage中分配事件处理程序

      例如

      public delegate void EditCompletedEvent(List<string> strEditedValues);
      public event EditCompletedEvent EditCompleted;
      
      public void OKBtn_Click(object sender, EventArgs e)
      {
       if (this.EditCompleted!= null)
                      {
                          EditCompleted(listofEditedvalues);
                      }
      }
      
      //And in form1 assign event handler
      
      public void AddEntryBtn_Click(object sender, EventArgs e)
              {
                  string x = label4.Text;
                  using (var obj_Addentry = new AddEntry(x))
                  {
                    obj_Addentry.EditCompleted += 
                         new Form2.EditCompletedEvent(obj_Addentry_EditCompleted)
                    obj_Addentry.ShowDialog();
                  }
                  this.Close();
              }
      
      obj_Addentry_EditCompleted(List<string> Editedvalues)
      {
      //Write down logic for assignment
      }
      

      【讨论】:

        猜你喜欢
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-26
        • 1970-01-01
        • 2015-12-26
        相关资源
        最近更新 更多