我遇到了问题。我有一个datagridview和一个可编辑的列,用户可以自己编写一个数字。但是......我需要在按钮的帮助下写下这个数字。例如,我有按钮1,2,3,... 9,如果用户单击此可编辑列(当然在一个单元格上),然后单击按钮3,则单元格中将出现3。我不知道该怎么做。我知道DataGridView中有这个EditMode,但我不知道如何使用它。
编辑: 我确实是这样的。它的工作原理:)。但是......当我改变sum的值时,有没有办法看到所选单元格的变化?例如,我选择一个单元格并且sum = 0,过了一会儿(当仍然选择相同的单元格时)总和变为13,但是当我选择不同的单元格时,我不会在所选单元格中看到这些变化它会有13.当它改变时,有没有办法看到所选单元格中的值?
dataGridView1.CellClick += CellClicked;
private void CellClicked(object sender,DataGridViewCellEventArgs e)
{
int row = e.RowIndex;
int col = e.ColumnIndex;
dataGridView1.Rows[row].Cells[col].Value = sum;
}
答案 0 :(得分:1)
在课堂上制作一个新变量' root,保存最后一次单击的单元格的位置:
DataGridViewCell activatedCell;
然后在您的" CellClicked" -event:
中设置活动单元格private void CellClicked(object sender,DataGridViewCellEventArgs e)
{
activatedCell = ((DataGridView)sender).Rows[e.RowIndex].Cells[e.ColumnIndex];
}
然后对按钮进行点击事件,在此处为此激活的单元格设置值:
void Button_Click(Object sender, EventArgs e)
{
// If the cell wasn't set, return
if (activatedCell == null) { return; }
// Set the number to your buttons' "Tag"-property, and read it to Cell
if (activatedCell.Value != null) { activatedCell.Value = Convert.ToDouble(((Button)sender).Tag) + Convert.ToDouble(activatedCell.Value);
else { activatedCell.Value = Convert.ToDouble(((Button)sender).Tag); }
dataGridView1.Refresh();
dataGridView1.Invalidate();
dataGridView1.ClearSelection();
}