Panel控件默认没有这些事件,现在我需要捕获这些事件,怎么处理?
解决方案 »
- GDI+如何处理路径弄出来的不规则区域的图片像素
- 我用了ToolStripMenu,设置的是打击open弹出文件选择对话框,然后用openFileDialog1.FileName;得到他打开的文件的路径名
- txt文件读写操作!请指教!
- 用户登录的时候,在短时间内密码连续输错3次,账号被锁定,是怎么实现的呢?
- 请教关于combobox添加选项的问题,急
- 简单sesion问题 在线等
- 求解决办法?【根据硬件传给的数据不断进行绘制曲线】
- C#知识太少,不知此句的含意:int height = imageList.Max(x => x.Height);
- 十万火急!
- WebForm问题?急!急!急
- .net c#可以开发 windows CE程序吗? 我想连接本地机的数据可以吗? 会的朋友教教
- 请问,在深圳哪里可以买到繁体版的Visual Studio .NET光盘?
比如:处理按F1键protected override void OnKeyDown(KeyEventArgs e){
if(e.KeyCode=Keys.F1){
// Do something Here.
MessageBox.Show(null,"用户按下了 F1 按钮","KeyDown 事件发生");
}
base.OnKeyDown(e);
}
...
if(e.KeyCode==Keys.F1)
...
GroupBox
PictureBox
ProgressBar
Splitter
Label
LinkLabel(当控件中没有链接时) -------------------------------------------------------------------------------不能由以上控件捕获键盘事件。主窗体 Form 就可以捕获键盘事件,楼主为什么要用 Panel 来捕获键盘事件呢?
using System.Windows.Forms;class Test : Form
{
Panel pnl;
int step = 5; Test()
{
Text = "方向键移位,Shift+方向键改变大小";
KeyPreview = true;
pnl = new Panel();
pnl.Parent = this;
pnl.BorderStyle = BorderStyle.FixedSingle;
} protected override void OnKeyDown(KeyEventArgs e)
{
Keys keysMod = Control.ModifierKeys;
switch (e.KeyCode)
{
case Keys.Up : if (keysMod == Keys.Shift) pnl.Height -= step; else pnl.Top -= step; break;
case Keys.Down : if (keysMod == Keys.Shift) pnl.Height += step; else pnl.Top += step; break;
case Keys.Left : if (keysMod == Keys.Shift) pnl.Width -= step; else pnl.Left -= step; break;
case Keys.Right: if (keysMod == Keys.Shift) pnl.Width += step; else pnl.Left += step; break;
}
base.OnKeyDown(e);
} static void Main()
{
Application.Run(new Test());
}
}
{
Panel pnl = new Panel();
int step = 5; Test()
{
Text = "方向键移位,Shift+方向键改变大小";
KeyPreview = true;
pnl.Parent = this;
pnl.BorderStyle = BorderStyle.FixedSingle;
} protected override void OnKeyDown(KeyEventArgs e)
{
Keys keysMod = Control.ModifierKeys;
switch (e.KeyCode)
{
case Keys.Up :
if (keysMod == Keys.Shift) pnl.Height -= step;
else pnl.Top -= step;
break;
case Keys.Down :
if (keysMod == Keys.Shift) pnl.Height += step;
else pnl.Top += step;
break;
case Keys.Left :
if (keysMod == Keys.Shift) pnl.Width -= step;
else pnl.Left -= step;
break;
case Keys.Right:
if (keysMod == Keys.Shift) pnl.Width += step;
else pnl.Left += step;
break;
}
base.OnKeyDown(e);
} static void Main()
{
Application.Run(new Test());
}
}