private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex > 1)
{
int cellValue = Convert.ToInt32(((DataGridViewCell)sender).Value);
if (cellValue < 20)
{
((DataGridViewCell)sender).Value = 21;
}
}
}
我正在尝试获取事件触发的单元格的值。
当我尝试将sender
投射到DataGridViewCell
:
无法投射类型的对象 'System.Windows.Forms.DataGridView'到 类型 'System.Windows.Forms.DataGridViewCell'。
你建议我做什么?
我需要检查该值是否小于20,如果是,请将其提升至21。
答案 0 :(得分:4)
尝试使用theDataGrid[e.RowIndex, e.ColumnIndex].Value
。我希望发送者更可能是DataGridView对象而不是单元本身。
答案 1 :(得分:4)
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex].Cells[1].Value != null)
{
int cellmarks = Convert.ToInt16(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
if (cellmarks < 32)
{
dataGridView1.Rows[e.RowIndex].Cells[2].Value = "Fail";
}
else
{
dataGridView1.Rows[e.RowIndex].Cells[2].Value = "Pass";
}
}
}
此代码将获得currentcell值。这可以帮助您。
答案 2 :(得分:2)
您可以将单元格的值设为
dataGridView1[e.ColumnIndex, e.RowIndex].FormattedValue;
答案 3 :(得分:2)
发件人的类型是DataGridView,因此您可以使用以下行:
int cellValue = Convert.ToInt32(((DataGridView)sender).SelectedCells[0].Value);
答案 4 :(得分:0)
我为_CellClick事件做了一个小变种。
private void Standard_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
int intHeaderId = 0;
switch (((DataGridView)sender).Columns[e.ColumnIndex].Name)
{
case "grcHeaderId":
intHeaderId = (int)grvEnteredRecords[grcHeaderId.Index, e.RowIndex].Value;
break;
...
答案 5 :(得分:0)
我建议使用EditedFormattedValue属性获取单元格的值,因为在我的测试中,我输入的FormattedValue始终为null。