私はC#で自分自身を学び、新しいです。次の行を読むDataGrid各ボタンをクリック
学習目的のために、ボタンをクリックしてテキストボックスに値を表示するたびに、特定の列の行の内容を読み取ろうとしています。 DataGridViewには、約10行10列あります。これを行うには、これはこれまでのところ私のコードです:
private void button7_Click(object sender, EventArgs e)
{
int rowscount = dataGridView1.Rows.Count;
for (int i = 0; i < rowscount; i++)
{
textBox1.Text =
dataGridView1.Rows[i].Cells["Columnname"].Value.ToString();
}
}
私はラインを切り替えることを試みた:dataGridView1.Rows [I] .Cells [ "COLUMNNAME"] Value.ToString();。 ValueToString()を呼び出すと、 "Columname"列のが正しく読み込まれ、textBox1に配置されます。しかし、再び[i]に切り替えると、次のエラーが表示されます。
System.NullReferenceException: 'オブジェクト参照がオブジェクトのインスタンスに設定されていません。'
'DataGridView'の' AllowUserToAddRows'プロパティが 'true'に設定されていると、このエラーが発生します。ユーザーが行を追加できるようにするには、この「新規行」を確認する必要があります。さらに、コードは、テキストボックスのテキストをループの各繰り返しに置き換えているように見えます。これにより、グリッド内の最後の行のみのテキストを含むテキストボックスが表示されます。このボタンに何をするかを明確にすることができます。 – JohnG
こんにちは、私は新しい行を追加したくない、ちょうどそのままファイルの内容を読む。はい、ボタンを押すたびに、テキストボックスはその内容をDataGridView1の同じ列名の次の行に置き換えます。 –
最後のコメントが正しい場合は、なぜすべての行をループするのですか?テキストボックスの値を 'textBox1.Text = dataGridView1.Rows [rowscount - 1] .Cells [" Columnname "]に設定するだけです。Value.ToString();' – JohnG