如何从子窗体访问winforms父窗体控件 [英] How To access winforms parent Form controls from a child Form
问题描述
在Form1中,我有一个DataGridView和多个文本框.当我单击Form2中的A按钮时,我需要将数据从DataGridView和多个文本框保存到数据库.如何在C尖锐的Windows应用程序中实现
In Form1 I have one DataGridView and multiple textboxes. When I click A button in Form2 I need to save the data from DataGridView and multiple textboxes to Database. How to Implement in C sharp Windows Application
Form1按钮单击事件.我打开了Form2
Form1 Button Click event. I opened 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和Call InsertSale函数.textboxes和datagridview处于form1
I want to attach textboxes data and Datagridview content to object SO and Call InsertSale function .textboxes and datagridview are in form1
这是表格2中的按钮单击事件
This is Button Click Event in Form 2
private void button1_Click(object sender, EventArgs e)
{
clsSale SO = new clsSale();
SO.Totamount = Convert.ToDecimal(form1.Instance.textBox2.Text);
SO.InserSale(SO);
}
推荐答案
如果 Form2
要访问 Form1
属性.
将ParentForm实例传递给ChildForm构造函数.在父表单中添加一个公共方法,以从子表单中更新其属性.
Pass ParentForm instance to the ChildForm constructor. Add a public method in the parent form to update its properties from child form.
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");
}
}
这篇关于如何从子窗体访问winforms父窗体控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!