2

我正在尝试将未绑定的 DataGridView 传递给表单,并且无法显示行,即使 Rows.Count 值是正确的。我觉得我错过了一些明显的东西。

// method code
// Create an DataGridView
DataGridView dgv = new DataGridView();
dgv.Columns.Add("Name","Name");
dgv.Columns.Add("Comments", "Comments");

// Add rows to datagridview
int n = dgv.Rows.Add();
dgv.Rows[n].Cells["Name"].Value = "a test name";
dgv.Rows[n].Cells["Comments"].Value = "some comment";

// Pass DataGridView to form
test_PassingDataGridView f = new test_PassingDataGridView();
f.DataGridTest = dgv;
f.ShowDialog();


// test_PassingDataGridView form code
DataGridView _datagridtest;
public DataGridView DataGridTest
{
    get { return _datagridtest; }
    set { _datagridtest = value; }
}

public test_PassingDataGridView()
{
    InitializeComponent();
}

private void test_PassingDataGridView_Load(object sender, EventArgs e)
{
    this.dataGridView1 = _datagridtest; // _datagridtest.Rows.Count is correct at this point
} 
4

1 回答 1

0

不要将 传递DataGridView给表单。将 aDataGridView放在设计器中的表单上,然后将 a 传递DataTable给表单并将表单绑定DataTableDataGridView.

通过按原样创建,DataGridView您会丢失许多通常在设计器中设置的属性。您可以通过设置属性来使其工作,特别是位置和大小,但即便如此,像这样传递控件也是一种非常糟糕的形式。而是传递数据。

于 2012-09-20T01:57:12.570 回答