DataGridView指定单元格的编辑状态与修改

功能需求:
有一个学生成绩表,第六列为考试成绩,第七列根据第六列 输入的 数值判断成绩为优、良、中。。等五级制分值,
如果第六列 成绩为空,可以填写成绩,如果第六列已经 输入 成绩,则不能修改,
我摸索这也实现了,不知道是否走了弯路,是否有更好 办法,
还有一个疑问就是:就是在界面 DataGridView 输入 成绩后,如果不在CellValidating中写
gradeDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = e.FormattedValue;
界面 成绩到最后更新 候就变成空白了,但是五级制分值就有,请高手赐教!!如何实现更高
谢谢!

private void gradeDataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
string strWuFen = "";
try
{
if (e.ColumnIndex == 6)
{
if ( !String.IsNullOrEmpty(e.FormattedValue.ToString()))
{
double dblFenShu = Convert.ToDouble(e.FormattedValue.ToString());
if (dblFenShu < 60)
{
strWuFen = "不及格";
}
else if (dblFenShu >= 60 && dblFenShu < 70)
{
strWuFen = "及格";
}
else if (dblFenShu >= 70 && dblFenShu < 80)
{
strWuFen = "中";
}
else if (dblFenShu >= 80 && dblFenShu < 90)
{
strWuFen = "良";
}
else if (dblFenShu >= 90)
{
strWuFen = "优秀";
}
gradeDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = e.FormattedValue;
gradeDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value = strWuFen;
//this.Validate();
this.gradeBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.mISDataSet);
}
}
}
catch
{
MessageBox.Show("请 输入 数字");
e.Cancel = true;
}
}
private void gradeDataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
if (e.RowIndex >=0 && e.ColumnIndex == 6)
{
if (!String.IsNullOrEmpty(gradeDataGridView[e.ColumnIndex,e.RowIndex].Value.ToString()))
{
e.Cancel = true;
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值