datagridview单元格怎样强制设置焦点?
某个单元格限制只能输入汉字,如果输入其他字符就会清空然后焦点返回这个单元格上。dataGridView1.CurrentCell=dataGridView1[3,0];/...
某个单元格限制只能输入汉字,如果输入其他字符就会清空然后焦点返回这个单元格上。dataGridView1.CurrentCell = dataGridView1[3, 0];//焦点返回dataGridView1.BeginEdit(true);
我用CellEndEdit、CellValueChanged事件分别试过,发现输完后点别的单元格触发事件后焦点会停在单击过的那个单元格上,或者按回车触发事件 焦点就会自己跳到下一行。我想知道怎么能在输入其他字符清空这个单元格之后焦点回来而不是跑到别的地方去,谢谢 展开
我用CellEndEdit、CellValueChanged事件分别试过,发现输完后点别的单元格触发事件后焦点会停在单击过的那个单元格上,或者按回车触发事件 焦点就会自己跳到下一行。我想知道怎么能在输入其他字符清空这个单元格之后焦点回来而不是跑到别的地方去,谢谢 展开
展开全部
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (ErrorCheck_dataGridVidw(e.ColumnIndex, e.RowIndex))//如果有错误
{
MessageBox.Show("balabala");
e.Cancel = true;//这个就是强制焦点不离开。
}
}
{
if (ErrorCheck_dataGridVidw(e.ColumnIndex, e.RowIndex))//如果有错误
{
MessageBox.Show("balabala");
e.Cancel = true;//这个就是强制焦点不离开。
}
}
展开全部
给你个提示
//数量 限制只能输入数字
private void dgvResult_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewTextBoxEditingControl)
{
DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control;
tb.KeyPress -= new KeyPressEventHandler(TextBoxDec_KeyPress);
if (dgvResult.CurrentCell.OwningColumn.Name == "Column7")
{
tb.KeyPress += new KeyPressEventHandler(TextBoxDec_KeyPress);
}
}
}
private void TextBoxDec_KeyPress(object sender, KeyPressEventArgs e)
{
//这里还可加长度判断
if ((e.KeyChar >= (Char)Keys.D0 && e.KeyChar <= (Char)Keys.D9)
|| e.KeyChar == (Char)Keys.Back)
e.Handled = false;
else
e.Handled = true;
}
上面是控制输入的。
MessageBox.Show("出货数量未填写,请填写!");
this.dgvResult.ClearSelection();
this.dgvResult.Rows[i].Cells[5].Selected = true;
//数量 限制只能输入数字
private void dgvResult_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is DataGridViewTextBoxEditingControl)
{
DataGridViewTextBoxEditingControl tb = (DataGridViewTextBoxEditingControl)e.Control;
tb.KeyPress -= new KeyPressEventHandler(TextBoxDec_KeyPress);
if (dgvResult.CurrentCell.OwningColumn.Name == "Column7")
{
tb.KeyPress += new KeyPressEventHandler(TextBoxDec_KeyPress);
}
}
}
private void TextBoxDec_KeyPress(object sender, KeyPressEventArgs e)
{
//这里还可加长度判断
if ((e.KeyChar >= (Char)Keys.D0 && e.KeyChar <= (Char)Keys.D9)
|| e.KeyChar == (Char)Keys.Back)
e.Handled = false;
else
e.Handled = true;
}
上面是控制输入的。
MessageBox.Show("出货数量未填写,请填写!");
this.dgvResult.ClearSelection();
this.dgvResult.Rows[i].Cells[5].Selected = true;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询