winformアプリケーションのdatagridviewに行を追加する方法。
シナリオは次のとおりです。
- Windowsフォームに1つのグリッドがあります。
- グリッドの列は事前に定義されています。(ここでは、列のインデックス、名前、ヘッダーテキスト、および順序は実行時に変更できないことを意味します。)
- そのグリッドに新しい行を追加する必要があります。
誰でも、この点で私を助けてください。このタスクを実行するにはどうすればよいですか?
winformアプリケーションのdatagridviewに行を追加する方法。
シナリオは次のとおりです。
誰でも、この点で私を助けてください。このタスクを実行するにはどうすればよいですか?
このようにしてみてください-
dataGridView1.Rows.Add(<col1 value>,<col2 value>,...)
パラメータは、各列に意図した値になります。
編集 :
他のコメントからコードを取得すると、次のように簡単に使用できます-
myMainApplication.dgvBooksDetails.Rows.Add(objBook.ID, objBook.Title, objBook.Author,
objBook.Genre, objBook.Price, objBook.PublishDate, objBook.Description);
編集
サブフォームに、メインフォームのインスタンスを保存します-
public MainForm _mainForm;
メインフォーム:
SubForm frm = new SubForm();
frm.MainForm = this;
frm.Show();
次に、データグリッドを埋めるには、次のようにします-
_mainForm.dgvBookDetails.Rows.Add(.....
それが役に立てば幸い!
あなたdataGridView1.Rows.Add(1)
のためにトリックをしませんか?
に対応する行を追加する必要RowTemplate
がありますDataGridView
単純に、データテーブルに行を追加し、次のようにソースをdatagridviewにバインドします。
row = dtTable.NewRow();
///HereEnter the value in row
dtTable.Rows.Add(row);
dataGridView1.DataSource = dtTable;
datasoruceを使用せずに行を追加する場合は、DataGridViewRowCollection.Addメソッドを使用する必要があります。
上記のコメントで述べたように、データテーブルにnewrowを追加してバインドするか、このようにします
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
{
// Get all rows entered on each press of Enter.
var collection = this.dataGridView1.Rows;
string output = "";
foreach (DataGridViewRow row in collection)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (cell.Value != null)
{
output += cell.Value.ToString() + " ";
}
}
}
// Display.
this.Text = output;
}
DatagGridViewのデータソースとしてDataTableオブジェクトを使用している場合は、バインディングソースを使用することをお勧めします。
BindingSource bs = new BindingSource();
bs.DataSource = DataTable;
DataGridView1.DataSource = bs;
次に、前述のようにデータテーブルに行を追加します。
この方法を使用すると、データテーブルに加えられた変更はすべてGridViewに自動的に反映されます。