C# 窗体编程如何做一个简单的按钮?

比如想做一个简单的窗体程序,一个按钮,按下等于键盘同时输入K和B,该怎么写?... 比如想做一个简单的窗体程序,一个按钮,按下等于键盘同时输入K和B,该怎么写? 展开
 我来答
澤希Dc
2014-03-20 · TA获得超过1747个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:255万
展开全部
最简单的方法,SendKeys.Send相当于模拟键盘输入,写在按钮的点击事件里就厅森可以了,兄睁你要的效果如下:

private void button1_Click(object sender, EventArgs e)
{
SendKeys.Send("KB"); //效果相当于键扮尘亩盘同时输入了KB
}

另外,有很多简单的按键外.挂都是用SendKeys.Send写的,你懂的
追问
如果想变得可以按下后可以在文档里输入Kb该怎么做?
追答

这个就稍微复杂点了,因为你想要模拟字符输入到文档里,那这个文档就必须是焦点,如果点击了窗体上的按钮,这个文档的焦点就丢失了,字符就输入不到文档里。

比较方便的处理方法是用Hook,你可以搜搜Hook的具体用法,我写个例子你看看:

  1. 首先你要下载一个dll文件:MouseKeyboardLibrary.dll,百度上直接能搜到,然后添加引用到你的项目中。

  2. 然后在窗体代码的顶部添加上面这个引用,using MouseKeyboardLibrary;

  3. 接着代码如下:

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键

jellychew
2014-03-20 · TA获得超过263个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:58.1万
展开全部
//没试过,你试一下能否解缓行羡决
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
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
填写用户名ABCD
2014-03-20 · TA获得超过393个赞
知道小有建树答主
回答量:464
采纳率:33%
帮助的人:202万
展开全部
From_KeyDown(s,e)
{
if (e.KeyCode == Keys.k || e.KeyCode == Keys.b)
{
//代纤运稿码毁孝悄毕

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式