C# 窗体编程如何做一个简单的按钮?
private void button1_Click(object sender, EventArgs e)
{
SendKeys.Send("KB"); //效果相当于键扮尘亩盘同时输入了KB
}
另外,有很多简单的按键外.挂都是用SendKeys.Send写的,你懂的
如果想变得可以按下后可以在文档里输入Kb该怎么做?
这个就稍微复杂点了,因为你想要模拟字符输入到文档里,那这个文档就必须是焦点,如果点击了窗体上的按钮,这个文档的焦点就丢失了,字符就输入不到文档里。
比较方便的处理方法是用Hook,你可以搜搜Hook的具体用法,我写个例子你看看:
首先你要下载一个dll文件:MouseKeyboardLibrary.dll,百度上直接能搜到,然后添加引用到你的项目中。
然后在窗体代码的顶部添加上面这个引用,using MouseKeyboardLibrary;
接着代码如下:
KeyboardHook keyboardHook = new KeyboardHook(); //实例化Hook对象
private void Form1_Load(object sender, EventArgs e)
{
//在窗体的Load事件里绑定KeyDown事件
keyboardHook.KeyDown += new KeyEventHandler(keyboardHook_KeyDown);
keyboardHook.Start(); //启动
}
void keyboardHook_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F12) //如果键盘输入的是F12
{
SendKeys.Send("Kb");
}
}
这样一个简单的例子就出来了,运行这个窗体,然后打开记事本,然后直接按F12,记事本里就会出现Kb,这个F12相当于开关,你还可以用SendKeys.Send()模拟其它键,比如SendKeys.Send("{ESC}");就相当于你按了键盘上的ESC键
//没试过,你试一下能否解缓行羡决
private void button_Click(object sender, EventArgs e)
{
KeyEventArgs ke=new KeyEventArgs();
ke.KeyCode=Keys.K;
ke.Modifier=Keys.B;
Form_KeyDown(this, ke);
}
private void Form_KeyDown(object 扰拍sender, KeyEventArgs 带迅e)
{
//to do
}
{
if (e.KeyCode == Keys.k || e.KeyCode == Keys.b)
{
//代纤运稿码毁孝悄毕
}
}