C# 在gridview中显示每个选定行的价格
想要在标签中显示datagridview中所选商品的价格。现在我使用循环来显示价格,但它只给我第一个选择的价格 显示价格的代码C# 在gridview中显示每个选定行的价格,c#,winforms,gridview,C#,Winforms,Gridview,想要在标签中显示datagridview中所选商品的价格。现在我使用循环来显示价格,但它只给我第一个选择的价格 显示价格的代码 int selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected); if (selectedCellCount > 0) { for (int i = 0; i < selectedCellCount; i++) {
int selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
if (selectedCellCount > 0)
{
for (int i = 0; i < selectedCellCount; i++)
{
int row = dataGridView1.SelectedCells[i].RowIndex;
label3.Text = dataGridView1.Rows[row].Cells[3].Value.ToString();
}
}
int-selectedCellCount=dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
如果(selectedCellCount>0)
{
对于(int i=0;i
另外,如何计算输入数量的总价
List<int> indexes = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Select(x => Select(x => x.Index).ToList();
int sum = 0;
for (int i = 0; i < indexes.Count; i++)
{
// here the label text will be the last row price because you overwrite each time
label3.Text = dataGridView1.Rows[i].Cells[3].Value.ToString();
sum += int.Parse(dataGridView1.Rows[i].Cells[3].Value.ToString());
}
MessageBox.Show("Sum of selected rows = " + sum.ToString());
List Index=dataGridView1.SelectedRows.Cast().Select(x=>Select(x=>x.Index).ToList();
整数和=0;
for(int i=0;i
我想我从你对其中一个答案的评论中得到了你的观点。你希望每当你选择行时,所选行的价格都会显示在标签上?对
为此,您可以使用名为SelectionChanged()的DataGridView事件,因此每当您的选择发生更改时,此事件都会触发并更改标签
假设gridview只允许一个选择
private void DataGridView1_SelectionChanged(object sender, EventArgs e)
{
DataGridViewRow row = this.dataGridView1.SelectedRows[0];
label.Text = row.Cells[3].Value.ToString();
}
希望这对你有帮助。这是答案。谢谢大家
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0) // make sure user select at least 1 row
{
label3.Text = dataGridView1.SelectedRows[0].Cells[3].Value + string.Empty;
}
问题是,每次你都在为循环重写
中的标签文本。你在循环的每次迭代中都会重写标签文本。@S.Akbari所以我需要从循环中删除标签语句并将其放在外部?@Liam是的,这是windows窗体应用程序Kay。谢谢。我认为总结没有问题,但是计算=价格*数量…如果存在MultiSelect=False
,则当前行可以通过dataGridView1.CurrentRow.Cells[3]获得.Value
,获取价值的最快和最简单的方法。@请告诉我们更多信息,什么代表数量?好的,例如,我有一行特定的项目,当我选择该行时,它将在标签中显示该项目的价格。当你在文本框中输入该项目所需的数量时,它将计算出项目价格*数量,以获取价格e total pricewell,一个建议,使用javascript
进行计算…因为您没有明确告诉我们计算将如何执行-在文本框中键入数量或单击这两个按钮中的某些按钮…无论如何,通过JS
执行计算以避免不必要的回发
…以及在哪里显示结果?这开始聊天,也给我们提供了html
,并解释了更多关于我和其他所有人被问到的问题。出于某种原因,它在行.Cells[3].Value中显示错误;它正在显示“无法隐式将类型对象转换为stringTry这一行。Cells[3].Value.ToString();未更改任何内容是否与将其转换为字符串相同?好的,现在当我运行winform代码时,出现以下错误System.NullReferenceException:“对象引用未设置为对象的实例。”System.Windows.Forms.DataGridViewCell.Value.get返回空值。