110,534
社区成员
发帖
与我相关
我的任务
分享
public class MyDataGridView : DataGridView
{
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.E || keyData == Keys.Enter || keyData == Keys.I)
//上面一条做实验 条件是判断e,i,回车
{
MessageBox.Show("123");
return true;
}
return base.ProcessDialogKey(keyData);
}[code=csharp]
ProcessEnterKey(Keys keyData);
ProcessF2Key(Keys keyData);
ProcessEscapeKey(Keys keyData);
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar ==(char) Keys.E)
{
MessageBox.Show("e");
}
if (e.KeyChar ==(char) Keys.Enter)
{
MessageBox.Show("enter");
}
}
public partial class CustomControl1 : DataGridView
{
public CustomControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
protected override bool ProcessDialogKey(Keys keyData)
{
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
return base.ProcessDataGridViewKey(e);
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.E || e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.I)
//上面一条做实验 条件是判断e,i,回车
{
MessageBox.Show("123");
}
base.OnKeyPress(e);
}
}
都有的,你得细心点看。[/quote]我搞定了 最后是重载了ProcesCmdKeypublic partial class CustomControl1 : DataGridView
{
public CustomControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
protected override bool ProcessDialogKey(Keys keyData)
{
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
return base.ProcessDataGridViewKey(e);
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.E || e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.I)
//上面一条做实验 条件是判断e,i,回车
{
MessageBox.Show("123");
}
base.OnKeyPress(e);
}
}
都有的,你得细心点看。[/quote]
谢谢你写了这么多 不过我刚刚去实验了一下 发现不管用
base.OnKeyPress(e);
这个函数执行的时候会调用下边这个函数,
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((int)e.KeyChar == 13)
{
MessageBox.Show("成功");
}
}
因为dataGridView按回车会自动到下一行,我不想让他下一行,所以想屏蔽这个动作,
我按你的说法 这样写
public class mydatagrid : DataGridView
{
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
return;
}
else
{
base.OnKeyPress(e);
}
}
}
我感觉这样写就是屏蔽掉了
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
这个函数,但是dataGridView依然换到了下一行
public partial class CustomControl1 : DataGridView
{
public CustomControl1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
protected override bool ProcessDialogKey(Keys keyData)
{
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
return base.ProcessDataGridViewKey(e);
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.E || e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.I)
//上面一条做实验 条件是判断e,i,回车
{
MessageBox.Show("123");
}
base.OnKeyPress(e);
}
}
都有的,你得细心点看。 protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.E || e.KeyChar == (char)Keys.Enter || e.KeyChar == (char)Keys.I)
//上面一条做实验 条件是判断e,i,回车
{
MessageBox.Show("123");
}
base.OnKeyPress(e);
}