.NET DataGridViewで行末尾に、行追加できないようです。以下の行追加試しました。
- RowCount プロパティを加算する。
- Rows.Add メソッドをcallする。
- Rows.Insert メソッドをcallする。
AIによると DataSource を追加しないといけないと言われます。ちょっと面倒すぎです。別の手を考えました。
追加用のダミー末尾を追加して、見せないようにします。コード例は CLI です。
private: System::Windows::Forms::DataGridView^ dgrdSend;
・・・中略・・・
private: System::Void Form1_Load( System::Object^ sender, System::EventArgs^ e)
{
・・・中略・・・
dgrdSend->RowCount = 2;
dgrdSend->Rows[0]->Cells[1]->Value = "1000"; // デフォルト送信データ行
dgrdSend->Rows[0]->Cells[2]->Value = "0";
dgrdSend->Rows[1]->Height = 0; // 送信データ行追加用ダミー(Addで末尾追加未サポのため)
dgrdSend->Rows[1]->ReadOnly = true;
// dgrdSend->Rows[1]->Visible = false; -> エラーになる
// dgrdSend->Rows[1]->Resizable = false; -> エラーになる
dgrdSend->AllowUserToResizeRows = false; // 全体に行リサイズ変更はOK
・・・中略・・・
}
int selectedRowSndData; // 選択中の送信データ行
/* ****************************************************************************
* 機能名 : 送信データ追加
* ***************************************************************************/
private: System::Void menuAddSendItem_Click(
System::Object^ sender,
System::EventArgs^ e
) {
selectedRowSndData ++;
dgrdSend->Rows->Insert( selectedRowSndData, 1 );
}
/* ****************************************************************************
* 機能名 : 送信データ挿入
* ***************************************************************************/
private: System::Void menuInsertSendItem_Click(
System::Object^ sender,
System::EventArgs^ e
) {
dgrdSend->Rows->Insert( selectedRowSndData, 1 );
}
実行結果です。






