刚学C#,1.怎样判断用户同时按下了AIT+N键?2.怎样将屏幕上(200,300)那个点设置成红色?
水平很低,谢谢!越详细越好!
水平很低,谢谢!越详细越好!
解决方案 »
- wpf 如何获取一列中一个单元格的control?
- 用vs2005做得一个winform程序,包含数据库MS sql2000访问。打包成安装包,应包含哪些文件?
- 字符串取大小字母的问题?
- TreeView在拖放节点时,如何实现节点图标也跟着拖放显示?
- C#.net下 js设置控件属性问题 急!!!!
- string 转换成 DateTime
- 需要做一个类似www.ebay.com的实时答疑的功能(急),高手请进入!!
- 建立的两个Windouws 应用程序如何合并到一起?
- GlobalUsername = (string)ds.Tables[0].Rows[0].["USERNAME"];这句报错:应输入标识符???
- 用户控件的问题?
- c/s下上传下载word文件!
- 是否用委托??
双击按钮,在Click事件中加入MessageBox.Show("同时按下了AIT+N键");
F5调试运行
if(e.KeyCode == Keys.N && e.Modifiers == Keys.Alt)
窗体keyPerview属性为True
if(e.KeyCode.ToString() == "N" && e.Alt == true)
{
if (keyData ==(Keys.Alt|Keys.N))
{
using (Graphics g = this.CreateGraphics())
{
using (SolidBrush brush = new SolidBrush(Color.Red))
{
g.FillEllipse(brush, Rectangle.FromLTRB(200 - 1, 300 - 1, 200 + 1, 300 + 1));
}
}
}
return base.ProcessDialogKey(keyData);
}
{
base.OnPaint(e);
using (SolidBrush brush = new SolidBrush(Color.Red))
{
e.Graphics.FillEllipse(brush, Rectangle.FromLTRB(200 - 1, 300 - 1, 200 + 1, 300 + 1));
}
}
这个应该是不行的,按下一个就会响应了,不可能绝对意义上的同时protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData ==(Keys.Alt|Keys.N))
{
using (Graphics g = this.CreateGraphics())
{
using (SolidBrush brush = new SolidBrush(Color.Red))
{
g.FillEllipse(brush, Rectangle.FromLTRB(200 - 1, 300 - 1, 200 + 1, 300 + 1));
}
}
}
return base.ProcessDialogKey(keyData);
}
这个应该没错
using (SolidBrush brush = new SolidBrush(Color.Red))
{
g.FillEllipse(brush, Rectangle.FromLTRB(200 - 1, 300 - 1, 200 + 1, 300 + 1));
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.N&&e.Alt)
{
Text="OK";
}
}
2. 看上边的