【问题标题】:How To access winforms parent Form controls from a child Form如何从子窗体访问winforms父窗体控件
【发布时间】:2020-02-26 04:56:45
【问题描述】:

在 Form1 中,我有一个 DataGridView 和多个文本框。当我单击 Form2 中的 A 按钮时,我需要将 DataGridView 和多个文本框中的数据保存到数据库中。如何在 C sharp Windows 应用程序中实现

Form1 按钮单击事件。我打开了Form2

 public sealed partial class form1 : Form
 {
   private static form1 instance = null;
    public static form1 Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new form1();
            }
            return instance;
        }
    }

  private void button1_Click(object sender, EventArgs e)
    {
        textbox2.Text=100;
        form2 CO = new form2();
        CO.Show();
    }
}

我想将文本框数据和 Datagridview 内容附加到 对象 SO 和调用 InsertSale 函数 .textboxes 和 datagridview 在 form1 中

这是表单2中的按钮点击事件

  private void button1_Click(object sender, EventArgs e)
  {
      clsSale SO = new clsSale();
      SO.Totamount = Convert.ToDecimal(form1.Instance.textBox2.Text);

      SO.InserSale(SO);
   }

【问题讨论】:

  • 您需要共享打开 Form1 和 Form2 的现有代码以及它们之间的关系...您是否尝试过任何方法来解决此问题?你在这方面面临什么问题?
  • 我无法访问 form2 中的 Textbox 和 Datagridview 内容。如何访问它?
  • SO.Totamount = Convert.ToDecimal(form1.Instance.textBox2.Text);我无法在 Form2 中访问 textbox2(即 form1)。它显示“”。我使用了单例设计模式。
  • 如何首先显示 Form1?通过Applicaiton.Run(new Form1()) ?

标签: c# forms winforms


【解决方案1】:

如果Form2 想要访问Form1 属性。

将 ParentForm 实例传递给 ChildForm 构造函数。在父窗体中添加一个公共方法以从子窗体更新其属性。

public partial class Form1: Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void SetTextBoxValue(string val)
    {
        this.textBox1.Text = val;
    }

    private void CreateForm2()
    {
         var form2 = new Form2(this);
         form2.Show();
    }
}

public partial class Form2: Form
{
    private Form1 form1;

    public Form2(Form1 frm1)
    {
        InitializeComponent();

        form1= frm1;
        form1.SetTextBoxValue("Value from Form2");
    }   
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2021-01-29
    • 2018-05-21
    • 2015-05-02
    • 2016-11-02
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多