我正在尝试将未绑定的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
}
答案 0 :(得分:0)
不要将DataGridView
传递给表单。在设计器中的表单上放置DataGridView
,然后将DataTable
传递给表单,并让表单将DataTable
绑定到DataGridView
。
通过创建DataGridView
,您会遗漏许多通常在设计器中设置的属性。您可以通过设置属性(特别是位置和大小)来使其工作,但即使这样,传递控件也是非常糟糕的形式。改为传递数据。