程序界面上有一个panel,用来画画,画画用键盘控制。如果界面上没有其他控件,则form拥有焦点,我在form的keyDown里处理。当在界面上有其他可接受焦点的控件时,form则再也接收不到keydown事件了。这应该怎么办?
解决方案 »
- TextBox中文本变化时候,能够实时调用前台的函数
- 已经引用了“应用程序集”,但在后台代码中却看不见
- 请教下,关于安装vs2008的问题
- WebBrowser模拟点网页里的浮动弹窗里按钮,怎么没反应?
- 用.Net写一个操作excel的web,求资料
- 各们有没有SOCKET的例子啊?MSDN里面的那个不好,有没有那种,发送端和接收端分开的例子啊?谢谢各位了
- 决非夸张的socket超难度问题!!!!!!
- 用C#访问SQL SERVER的问题
- C#中sql server数据库开发书籍,带范例光盘的哪种较好。
- 关于LogRecord的问题哟?如果你知道,那就帮我我吧!!
- 数据库连接,帮我看看有什么错
- C# 还是TreeView的问题?
ProcessKeyMessage
ProcessCmdKey
WndProc
请考虑,如果我的窗体上不止一个按钮,还有几个textBox,你的方法的适用吗。
private void button1_Click(object sender, EventArgs e)
{
.......................
panel1.Focus();
}
2.监视prowmc事件
3.可以挂钩子
7楼的,你说的prowmcGoogle都搜不到相关信息,让我这菜鸟怎么用?能不能详细一点?
关注此贴 我也想找到更好的办法
关注此贴 我也想找到更好的办法
private void button1_Click(object sender, System.EventArgs e)
{
blnStartDraw = true;
} private void button2_Click(object sender, System.EventArgs e)
{
blnStartDraw = false;
} const int WM_KEYDOWN = 0x100; protected override bool ProcessCmdKey(
ref Message msg,
Keys keyData
)
{
if (msg.Msg == WM_KEYDOWN)
{
if (blnStartDraw == true)
{
Graphics g = this.panel1.CreateGraphics();
g.DrawRectangle(System.Drawing.Pens.Red, 10, 10, 100, 100);
g.Dispose();
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}