如何从 Cell_Leave 事件中获取 DataGridViewCell 的值?
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。
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;
}
}
}
I'm trying to get the value of the cell that the event fired from.
An exception is fired when I try to cast sender
to a DataGridViewCell
:
Unable to cast object of type
'System.Windows.Forms.DataGridView' to
type
'System.Windows.Forms.DataGridViewCell'.
What do you recommend I do?
I need to check if the value is less than 20, and if it is, bump it up to 21.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
尝试使用
theDataGrid[e.RowIndex, e.ColumnIndex].Value
。我预计发送者更有可能是 DataGridView 对象而不是单元格本身。Try working with
theDataGrid[e.RowIndex, e.ColumnIndex].Value
. I'd expect that the sender is more likely to be the DataGridView object rather than the cell itself.此代码将获取当前单元格值。这可能对您有帮助。
This code will get currentcell value.may this help you.
您可以获得单元格的值
You can get the value of the cell as
发送者的类型是 DataGridView,因此您可以使用以下行:
sender's type is DataGridView, so you may use the following line:
我对 _CellClick 事件做了一个轻微的变体。
I did a slight variant for a _CellClick event.
我建议使用 EditedFormattedValue 属性获取单元格的值,因为在我的测试中,我输入的 FormattedValue 始终为 null。
I suggest getting the value of the cell using the EditedFormattedValue property, since in my testing the FormattedValue that I have entered is always null.