焦点求助(急用,高分)

zhuyj441 2003-07-05 09:44:15
我从UserControl继承了一个控件,上面只有两个ScrollBar(VScrollBar,HScroolBar),其他的信息都是绘制出来的。现在我需要从键盘对控件进行操作,但是,在接收键盘时,总是会被ScrollBar接收到焦点,UserControl不能接受到键盘事件。且ScrollBar在接受到焦点后会出现闪烁的情况,很难看。
请问我怎样才能避开ScrollBar,让UserControl(this)响应键盘的事件。
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
TheAres 2003-07-06
  • 打赏
  • 举报
回复
HOOK,就是钩子,就是提前截获消息,进行处理。如何做,看这里。
http://www.syncfusion.com/FAQ/WinForms/FAQ_c70c.asp#q618q


我觉得也可以override控件的ProcessDialogKey函数来完成。你试试看。

protected override bool ProcessDialogKey( Keys keyData )
{
if ( keyData == Keys.Down || keyData == Keys.Up)
{
//在这里写你的代码
return true;

}

base.ProcessDialogKey(keyData);
return true;

}
zhuyj441 2003-07-06
  • 打赏
  • 举报
回复
不太明白什么是KEY HOOK,可不可以说的详细些。
那是干什么的,我该怎样才能使用,能实现什么样的功能,有没有参考?
谢谢!
lslsoft 2003-07-06
  • 打赏
  • 举报
回复
最后就是做个KEY HOOK
zhuyj441 2003-07-06
  • 打赏
  • 举报
回复
我希望能模拟ListView的效果,用上下键来选择我的内容,可是键盘的事件总是被ScrollBar先得到,并且那个ScrollBar得到焦点似乎都是不可预测的,ScrollBar在得到焦点后,产生了移动,这样我就不能按我的要求进行界面的绘制,这似乎是个很麻烦的问题。
mari 2003-07-05
  • 打赏
  • 举报
回复
继承的控件默认得不到焦点的
TheAres 2003-07-05
  • 打赏
  • 举报
回复
你在usercontrol的Load事件中,添加如下一句。
this.ActiveControl = null;

如何在不行,可以考虑用Keyboard hook来完成。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧