我做分割视图,Winform,左边是TREEVIEW,右边是几十个USERCNTROL显示隐藏;
1、我想让右边各USERCNTROL显示时焦点在第一个TAB控件上,但在此面板的VisebleChanged事件响应中加入代码this.Focuse() 或是 txt_NAME.Focuse() 都不行(txt_NAME 是此面板上的一个控件名),但如果写 txt_NAME.Text="test";又可以,说明对像引用还是没问题呀,但为何Focuse() 不行?
2、我想在右边实现像EXCEL中一样的按Enter焦点到下一个TAB上,以前用C++时记得好像可以将响应函数的参数的KetValue(记不太清了)属性由VKdy_Enter换成VKey_Tab就右以了,但现在事件的参数e的属性都是只读的,如何实现呀?
3、如何定义一个按钮的快捷键(CTRL+而非ALT+)?
谢谢各位!!
1、我想让右边各USERCNTROL显示时焦点在第一个TAB控件上,但在此面板的VisebleChanged事件响应中加入代码this.Focuse() 或是 txt_NAME.Focuse() 都不行(txt_NAME 是此面板上的一个控件名),但如果写 txt_NAME.Text="test";又可以,说明对像引用还是没问题呀,但为何Focuse() 不行?
2、我想在右边实现像EXCEL中一样的按Enter焦点到下一个TAB上,以前用C++时记得好像可以将响应函数的参数的KetValue(记不太清了)属性由VKdy_Enter换成VKey_Tab就右以了,但现在事件的参数e的属性都是只读的,如何实现呀?
3、如何定义一个按钮的快捷键(CTRL+而非ALT+)?
谢谢各位!!
datawindow.net按键返回其他键值
关键词: datawindow.net 使用datawindowkeydown事件switch (e.KeyData)
{
case Keys.Enter:
case Keys.Down:
SendKeys.Send("{TAB}");//下一个tab值
break;
case Keys.Up:
SendKeys.Send("+({TAB})");//上一个tab值
break; }
還有我的其他兩個問題呢﹖
foreach(Control ctrl in this.Controls)
{
if ((ctrl is TextBox) || (ctrl is ComboBox)) //如果文本框或下拉框放在组合框中,你应该用如groupBox1.TextBox
{
ctrl.KeyDown += new System.Windows.Forms.KeyEventHandler(this.EnterKeyDown);
}
}
然后在EnterKeyDown事件中定义当按下的键为Enter键时,发送Tab键,程序如下:
private void EnterKeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
{
System.Windows.Forms.SendKeys.Send("{TAB}");
}
}
这样便可实现用Enter代替Tab键转的
然后当响应到Enter事件时就可以找到并Focus到下一个控件咯
不过我还是再去试试看,谢谢各位先!!!