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フォームにを渡さないでください。DataGridViewデザイナでフォームにaを配置し、フォームにaを渡しDataTableて、フォームにをバインドDataTableさせDataGridViewます。

を作成することによりDataGridView、デザイナーで設定されることが多い多くのプロパティが失われます。プロパティ、特に位置とサイズを設定することで機能させることができますが、それでも、そのようにコントロールを渡すのは非常に悪い形式です。代わりにデータを渡します。

于 2012-09-20T01:57:12.570 に答える