C# 2005 WINFORM DataGridView 输入后,回车 如何在回车时得到输入的字符??需高手回答C# 2005 WINFORM DataGridView 我的想法是输入助记码后,回车 选择信息,如何在回车时得到输入的字符。 如在第一列输入 aa回车,怎么得到aa呢?第二列呢?
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) //激活回车键
{
int WM_KEYDOWN = 256;
int WM_SYSKEYDOWN = 260;
bool IsDataGridView1 = false;
if (this.ActiveControl == this.dMx)
{
IsDataGridView1 = true;
}
else
{
if (this.ActiveControl is IDataGridViewEditingControl)
{
if ((this.ActiveControl as IDataGridViewEditingControl).EditingControlDataGridView == this.dMx)
{
IsDataGridView1 = true;
}
}
} if (IsDataGridView1) //是否处于DataGridView1 上
{
if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
{
switch (keyData)
{
case Keys.Enter:
if (this.ActiveControl is System.Windows.Forms.DataGridViewComboBoxEditingControl
|| this.ActiveControl is System.Windows.Forms.DataGridViewTextBoxEditingControl
)
{
if (this.dMx.CurrentCell is DataGridViewTextBoxCell)/
{
if (this.dMx.CurrentCell.ColumnIndex == 0)
{ string str ; //this.dMx.CurrentCell.Value.ToString();
str = this.dMx.Rows[0].Cells[0].Value.ToString(); //怎么得到aa呢?第二列呢?
//在这里向上面这样写出错,说没有实例化。
}
}
// SendKeys.Send("{Tab}");
}
return true;
break;
} }
}
return false;
} }
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) //激活回车键
{
int WM_KEYDOWN = 256;
int WM_SYSKEYDOWN = 260;
bool IsDataGridView1 = false;
if (this.ActiveControl == this.dMx)
{
IsDataGridView1 = true;
}
else
{
if (this.ActiveControl is IDataGridViewEditingControl)
{
if ((this.ActiveControl as IDataGridViewEditingControl).EditingControlDataGridView == this.dMx)
{
IsDataGridView1 = true;
}
}
} if (IsDataGridView1) //是否处于DataGridView1 上
{
if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
{
switch (keyData)
{
case Keys.Enter:
if (this.ActiveControl is System.Windows.Forms.DataGridViewComboBoxEditingControl
|| this.ActiveControl is System.Windows.Forms.DataGridViewTextBoxEditingControl
)
{
if (this.dMx.CurrentCell is DataGridViewTextBoxCell)/
{
if (this.dMx.CurrentCell.ColumnIndex == 0)
{ string str ; //this.dMx.CurrentCell.Value.ToString();
str = this.dMx.Rows[0].Cells[0].Value.ToString(); //怎么得到aa呢?第二列呢?
//在这里向上面这样写出错,说没有实例化。
}
}
// SendKeys.Send("{Tab}");
}
return true;
break;
} }
}
return false;
} }
解决方案 »
- C# winfrom中第三方控件GridContrl如何把数据库中的表竖向显示?
- Microsoft.Office.Tools和Microsoft.Office.Interop有啥区别啊?
- File.Exists 是怎样判断权限的?
- 高分!求助!加密解密顶尖高手请进!(赠送300分)
- 高分求助:oracle数据库中blob字段的问题
- 严重迫切的一个问题!
- 在textbox1获取回车切换到textbox2
- 第一次写程序 编译错误。。。 求教 无从下手啊
- MIplImage 的 imageDataOrigin 和 imageData 分别什么时候用。。?
- 如何获取菜单MdiList的事件
- 精通C# C++的朋友请进这里
- 我应该做什么??
1:响应你需要处理的列的单元格的键盘事件;
2:设置Handled=true;在单元格内不回显输入字符;
3:在接收到回车后进行相应的处理;
4:移动焦点时清空输入的字符序列。
http://dev.21tx.com/2006/12/21/10691.html