特定の行を選択すると、DataGridViewでカラム '量'のセル値を更新または変更する方法を尋ねます。 DataGridViewには、Item Name
、Quantity
、Price
の3つの列があります。 フォーム上で「追加」または「less」ボタンをクリックするたびに、選択した行アイテムの数量が数量欄に追加または減算され、数量が増減するたびに価格も更新されます。 DataGridViewにアイテムを追加するときのコードは次のとおりです。ボタン上のDataGridViewセルの値を変更する
データグリッドにアイテムを追加することが適切かどうかはわかりません。
cmd = new MySqlCommand("SELECT * FROM tblmenu", dbConn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Button btn = new Button();
btn.Text = rdr["menuName"].ToString();
btn.Width = 126;
btn.Height = 80;
btn.Click += delegate
{
MySqlConnection cnn2 = new MySqlConnection(sqlConn.connString);
cnn2.Open();
cmd = new MySqlCommand("SELECT menuName, menuPrice FROM tblmenu WHERE menuName = @name", cnn2);
cmd.Parameters.AddWithValue("@name", btn.Text);
MySqlDataReader rdr2 = cmd.ExecuteReader();
while (rdr2.Read())
{
dataGridView1.Rows.Add(rdr2.GetString("menuName").ToUpper(), 1, rdr2.GetDouble("menuPrice"));
}
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
lblQty.Text = dataGridView1.RowCount.ToString();
};
}
私はこれを試しましたが、別のアイテムセットをクリックすると、前の選択アイテムからの数量が増分されます。
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
Add.Click += delegate
{
dataGridView1.Rows[e.RowIndex].Cells["quantity"].Value = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["quantity"].Value) + 1;
};
Minus.Click += delegate
{
dataGridView1.Rows[e.RowIndex].Cells["quantity"].Value = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["quantity"].Value) - 1;
};
}
うわー。それは動作します:)私の問題は、現在、追加またはマイナスボタンをクリックするたびに数量の列または価格を動的に掛ける方法です。 – LazyPirate
価格の更新要件に基づいて回答を改善しました。あなたの問題を解決するなら、私の答えを受け入れてください。 @Verdolinoの答えが示唆していることも慎重に読んでください。その正しい練習と非常に良い答え。私のupvoteに値する。 –
@LazyPirate私の答えがあなたの問題を解決したことをうれしく思っています。 –