如何使用 C# 更新用户控件中的 datagridview

我陷入了这个项目,其中它不会自动更新用户控件内我的 datagridview 的内容。我有一个表单(frmCustomer),其中包含 CRUD 和具有 datagridview 的用户控件。我想自动更新用户控件一旦我在表单(frmCustomer)上添加一些内容。用户控件附加在另一种形式(frmMenu)的面板上。我尝试调用用户控件中的方法来更新datagridview,但似乎不起作用?这是我在 UC_Customer 中的代码,我在其中获取来自数据库的数据。


UC_客户


public void RetrieveCustomer()

        {

using (MySqlConnection sqlCon = new MySqlConnection(myConnectionString))

            {

                sqlCon.Open();

                MySqlDataAdapter sqlDa = new MySqlDataAdapter("Select * from tblcreateaccounts", sqlCon);

                DataTable dtbl = new DataTable();

                sqlDa.Fill(dtbl);


                dgridCustomer.DataSource = null;

                dgridCustomer.DataSource = dtbl;

                this.dgridCustomer.Columns["Sex"].Visible = false;

                this.dgridCustomer.Columns["Birthday"].Visible = false;

                this.dgridCustomer.Columns["Age_"].Visible = false;

            }

        }`

UC_Customer_Load()


  private void UC_Customer_Load(object sender, EventArgs e)

        {

            dgridCustomer.AutoGenerateColumns = false;

            setUpDataGrid();

            RetrieveCustomer();

            RemovingLag rev = new RemovingLag();

            rev.DoubleBuffered(dgridCustomer, true);

            age = DateTime.Today.Year - dtpBirthdate.Value.Year;


        }

在用户控件内部,我有一个按钮(添加客户),它通过 showDialog() 调用 FrmCreateAccount,当我成功添加客户时,它不会自动更新控制面板中的 datagridview,它只会在我单击后更新按钮(刷新:我调用了方法 RetrieveCustomer 来更新数据网格)PS。该用户控件嵌入到Bunifu 页面中,该页面实际上插入到 frmMenu 中。

慕的地6264312
浏览 77回答 2
2回答

冉冉说

您想要在执行操作时更新另一个表单。如果是这样,您可以在“frmMenu”表单上创建一个委托并为其分配一个操作,当向“frmCustomer”添加某些内容时,该委托会执行 datagridview 委托操作并更新。如果您提供代码片段,我们可以更好地帮助您。

慕神8447489

我已经解决了我的问题,我只是在每个用户控件中创建了一个实例(单例方法),它允许我以相应的形式调用每个方法..:)谢谢
打开App,查看更多内容
随时随地看视频慕课网APP