winform datagridview单元格背景色问题
if(dgvdinghuo.CurrentCell.ColumnIndex.Equals(4))//判断是否是要触发的那个单元格{TextBoxtxtAmount=e.C...
if (dgvdinghuo.CurrentCell.ColumnIndex.Equals(4))//判断是否是要触发的那个单元格 { TextBox txtAmount = e.Control as TextBox;//先把那个单元格转化成文本框 txtAmount.TextChanged += new EventHandler(txtAmount_TextChanged);//写一个txt_TextChanged()事件,这里面做你的逻辑处理 } decimal dj = Convert.ToDecimal(dgvdinghuo.CurrentRow.Cells["dj"].EditedFormattedValue);用EditedFormattedValue获取内容以后单元格背景色就变为黑色了,如何能还是变回白色
展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)+提问者悬赏20(财富值+成长值)
展开全部
不明白你为什么这样接收单元的内容, datagridview控件本身有接收的事件,你可以控制接收的每个字符,当然也可以控制单元格背景色。
#region 对输入单元格的数据进行限制
/// <summary>
/// 编辑时,添加接收单元格,以验证输入数据。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView_BuLiao_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
m_edit = (DataGridViewTextBoxEditingControl)e.Control;
m_edit.SelectAll();
m_edit.KeyPress += new KeyPressEventHandler(m_edit_KeyPress);
}
/// <summary>
/// 对输入单元格的数据进行限制
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void m_edit_KeyPress(object sender, KeyPressEventArgs e)
{
switch (dataGridView_BuLiao.CurrentCell.ColumnIndex)
{
case 3:
{
#region // 双精度浮点数 double 单精度浮点数 float
//允许接收一个 .
if (e.KeyChar == '.')
{
// 检查 . 字符是否在指定位置中出现
if (m_edit.Text.Trim().Contains(".") | m_edit.Text.Length == 0)
{
e.Handled = true;
return;
}
else
{
e.Handled = false;
return;
}
}
//允许接收退格键
if (e.KeyChar == (char)8 || e.KeyChar == (char)46)
{
e.Handled = false;
return;
}
//不许接收0~9外的其他字符
if (e.KeyChar < '0' || e.KeyChar > '9')
{
e.Handled = true;
}
break;
#endregion
}
}
}
#endregion
#region 对输入单元格的数据进行限制
/// <summary>
/// 编辑时,添加接收单元格,以验证输入数据。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView_BuLiao_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
m_edit = (DataGridViewTextBoxEditingControl)e.Control;
m_edit.SelectAll();
m_edit.KeyPress += new KeyPressEventHandler(m_edit_KeyPress);
}
/// <summary>
/// 对输入单元格的数据进行限制
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void m_edit_KeyPress(object sender, KeyPressEventArgs e)
{
switch (dataGridView_BuLiao.CurrentCell.ColumnIndex)
{
case 3:
{
#region // 双精度浮点数 double 单精度浮点数 float
//允许接收一个 .
if (e.KeyChar == '.')
{
// 检查 . 字符是否在指定位置中出现
if (m_edit.Text.Trim().Contains(".") | m_edit.Text.Length == 0)
{
e.Handled = true;
return;
}
else
{
e.Handled = false;
return;
}
}
//允许接收退格键
if (e.KeyChar == (char)8 || e.KeyChar == (char)46)
{
e.Handled = false;
return;
}
//不许接收0~9外的其他字符
if (e.KeyChar < '0' || e.KeyChar > '9')
{
e.Handled = true;
}
break;
#endregion
}
}
}
#endregion
更多追问追答
追问
追答
你可以通过判断用户正在编辑哪个单元格,然后假如是你要的单元格你可以直接改变该单元格的颜色。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询