【问题标题】:How to insert DataTable in DataGridView from a by class and display in form?如何按类在DataGridView中插入DataTable并以表格形式显示?
【发布时间】:2018-07-06 17:11:31
【问题描述】:

我想创建这样的课程 class insert DataTable in DataGridView

 class Test_Class 
 {
    public void test()
    {
        Form1 form1 = new Form1();
        DataTable dt1 = new DataTable();
        dt1.Clear();
        dt1.Columns.Add("Name");
        dt1.Columns.Add("BDate");

        dt1.Rows.Add("Joh", 1997);
        dt1.Rows.Add("Keylor", 1995);
        form1.dataGridView2.DataSource = dt1;
    }
}

Form1 中的代码如下 Form1

          Test_Class test_Class = new Test_Class();
    private void Form1_Load(object sender, EventArgs e)
    {

    }
    private void button1_Click(object sender, EventArgs e)
    {
        test_Class.test();
    }

Form1 designer 但是这段代码不起作用 我用这个简单的例子来帮助理解问题 去点击button1 什么都没有

【问题讨论】:

  • 请将您的代码粘贴到您的问题中,而不是使用屏幕截图。还请尝试提供更多信息,说明您要解决的问题到底是什么。
  • 不起作用不是一个有用的问题描述! - 发生什么了?没有?错误? (哪个?)崩溃?错误的结果? (哪个?)
  • 是的..如果他给我错误就不起作用了,我可以解决,但是什么都没有
  • 我的问题是为什么这段代码不起作用?
  • 我对这一行的问题 form1.dataGridView2.DataSource = dt1;

标签: c# .net winforms datagridview datatable


【解决方案1】:

您的问题与 DataTable、DataGridView 或 DataSource 无关。它只与访问正确的表单有关。您创建了一个额外的实例,而不是引用正确的实例。

经典的方法是将来自 Form1 的引用传递给您创建的任何其他表单,或者在本例中是另一个类。

更改类构造函数以接收对“真实”Form1 的引用:

class Test_Class 
{
  Form1 form1 = null;                     // <==
  public void test(Form1 form1_)         // <==
  {
    form1 = form1_;                     // <==
    DataTable dt1 = new DataTable();
    dt1.Clear();
    dt1.Columns.Add("Name");
    dt1.Columns.Add("BDate");

    dt1.Rows.Add("Joh", 1997);
    dt1.Rows.Add("Keylor", 1995);
    form1.dataGridView2.DataSource = dt1;
  }
}

并创建它并传递对它的引用:

 Test_Class test_Class = new Test_Class(this);        // <==

现在测试类可以使用对真实可见表单的有效引用。

【讨论】:

  • 如果您对答案感到满意,请考虑考虑accepting it..! - 我看到你从来没有这样做过:去左上角的(不可见的)复选标记,在答案的投票下方,然后单击它!它变成绿色并为我们俩赢得了一点声誉。..
  • 非常感谢您的帮助:)
猜你喜欢
  • 2023-01-12
  • 1970-01-01
  • 2021-03-11
  • 2014-02-12
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多