【问题标题】:How to find DataGridView of one form in another form?如何在另一种形式中找到一种形式的DataGridView?
【发布时间】:2013-10-31 06:50:21
【问题描述】:

好的,我对 WinForms 完全陌生,我正在尝试通过

找到我在另一个表单上的一个表单(frmPledgeCreation)的 DataGridView1

frmPledgeCreation.Controls.Find("DataGridView1", True)

问题是,当我在第二个表单上检查 DataGridView1 的行数时......即使 frmPledgeCreation 上的 DataGridView1 中有很多行,我也总是得到 1。

frmPledgeCreation.Controls.Find("DataGridView1", True) 是否正在创建一个新实例? 我的目标是从其他形式设置此 DataGridView 的特定列的单元格的值,如下所示...

DGV.Rows(Convert.ToInt32(gDGVindex)).Cells("SecurityName").Value = GstrSearchResult.ToString()

gDGVindex 是一个全局变量,它具有 rowindex .. 但我总是得到超出范围的错误。

【问题讨论】:

  • 公开 DataGridView1 并在其他表单上使用。有关更多数据,您可以参考绑定到数据网格视图的数据源
  • 请发布您的实际代码。说什么都太让人费解了。顺便说一句,在这种情况下,ControlCollection.Find 方法不是您想要的。

标签: c# .net vb.net winforms datagridview


【解决方案1】:

如果你正在做同样的事情。我会以您的形式公开一个公共功能。此函数将负责更新网格。

frmPledgeCreation.UpdateSomeCell(GstrSearchResult.ToString())

您必须已经有一个 DataGridView1 属性。

另一种方法是将 DataGridView1 从私有/受保护更改为公共。

【讨论】:

    【解决方案2】:

    您可以在要访问DataGridView1的表单中引用frmPledgeCreation

    在 frmPledgeCreation 中

    class frmPledgeCreation:Form
    {
     public DataGridView dgv{get{return DataGridView1;}}
     Form1()
     {
      InitializeComponent();
     }
    }
    

    用于显示Form2

    Form2 f=new Form2(this);
    f.show();
    

    在Form2中

    class Form2
    {
     frmPledgeCreation reftof1;
     Form2(frmPledgeCreation f)
     {
      reftof1=f;
     }
    }
    

    现在您可以使用 refof1 引用访问 Form2 中的 DataGridView

    reftof1.dgv.Rows[Convert.ToInt32(gDGVindex)].Cells["SecurityName"].Value=GstrSearchResult.ToString()
    

    【讨论】:

    • @Arbaaz 有什么错误?您是否仍然收到 OutOfRange 异常?
    • @Arbaaz 在哪一行?您的 DGV 是数据绑定的吗?
    【解决方案3】:

    您可以创建公共函数来更新网格,然后调用该函数 here is an answer to similar question

    父窗体

       Form1 f = new Form1();
        f.Show(this);
    

    子窗体

    ((Form1)Owner).DoSomething();
    

    【讨论】:

    • 这是一个边界线link-only answer。您应该在此处扩展您的答案以包含尽可能多的信息,并仅将链接用作参考。
    猜你喜欢
    • 2021-08-06
    • 2010-10-06
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多