C#中picturebox控件如何使按Enter键相当于单击此控件

我做一个登陆窗体,登陆按钮是用图片控件做的,不是Button,在主窗体里面的AcceptButton里面又只能选Button控件。所以想问问如何使用图片控件能实现像Button控件一样 按回车键就相当于单击它?
要求:1.不要回复网上的内容给我,我查过试过,没用。
2.写代码请详细,完整点。比如添加事件,在哪加?等等 谢谢!

1.直接用 Form 的 KeyPress 事件还有呢,pictureBox 不好获取焦点(即使取到焦点,视觉上也是看不到的,对于使用者压根不知道pictureBox已被选中)

private void Form2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar ==13)
{
//这里就写Button点击登陆的代码
}
}
2.pictureBox 的点击事件也写一个吧

private void pictureBox1_Click(object sender, EventArgs e)
{
//这里就写Button点击登陆的代码
}追问

你这个前提是要获得焦点的吗? 我的意思是当输入账号密码后直接敲回车就可以登录的 不是还要通过tab来获得焦点再回车的

追答

直接用 Form 的 KeyPress 事件就不用获取什么焦点了,整个Form就是焦点。就直接下面代码了
private void Form2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar ==13)
{
//这里就写Button点击登陆的代码
}
}

追问

试了一下,发现在其他控件获得焦点的时候无效,比如输完密码,光标还在密码框上,所以按了没反应。但是一般不是输完密码直接回车吗

追答

我晕,再听你这么问我都不知道怎么回答你了,直接用 Form 的 KeyPress 事件就成了,再不懂就用密码输入框的 KeyPress 也行的

追问

谢谢~第一个确实不行,后面那个就好了。通过你这个方法我用重写方法也能实现了!谢谢!!

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-10
pictureBox1.KeyDown += new KeyEventHandler(pictureBox1_KeyDown);
this.ActiveControl = this.pictureBox1;//选中pictureBox1,不然没法触发事件
void pictureBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("回车了");
}
else
{
MessageBox.Show(e.KeyValue.ToString());
}
}本回答被网友采纳
第2个回答  2014-06-02
重写窗体的WndProc,发现用户按了回车后直接转调Click的Handler。
我手边没有VS,你自己可以google一下“C# WndProc”追问

网页打不开..不怎么懂

第3个回答  2014-06-02
首先对你态度挺反感。请教问题要虚心。
你这个问题,做登陆窗体为什么要用picturebox,仍然要用button,里面可以设置image属性,选好图片就可以了,这时图片就变成button的背景了。追问

不好意思,这点是我错..因为前天问的别人都是直接复制过来,很不喜欢为了拿分敷衍我。
然后那个不是要用picturebox 而是因为我前面很多代码都跟这个控件有关了,,我知道button可以用,换起来麻烦,而且我也想看看除了button这个还有没有其他方式

c# 通过代码创建了很多的pictureBox,如何单击button控制那些pictureBox...
private void button1_Click(object sender, EventArgs e) { \/\/ 遍历窗体所以控件 foreach (Control c in this.Controls) { \/\/ 检查控件是否为PictureBox if (c is PictureBox) { \/\/ 是,着向左边移动 c.Left += 10; } } } ...

C#窗口添加了pictureBox,和button,我想单击button然后将某一个pictur...
picture.image= Image.FromFile(@"d:\\\\aaa.jpg"); 括号里是路径

VC#里怎样才能点击按钮后弹出选择文件对话框??
在VC#中,为了在点击按钮后弹出选择文件对话框并显示所选图片,首先需要在界面中添加一个显示图片的控件,如PictureBox,并在用于触发文件选择的按钮上绑定单击事件。创建一个名为openFile的OpenFileDialog实例,并设置其标题、过滤类型和初始目录,以便用户选择合适的图片类型并从其常用文件夹开始。事件处理函...

c#,点击button使得picturebox里面每2秒显示一张图片,就像ppt里面自动播放...
1 . 借助timer控件,当点击按钮的时候激活timer事件,然后在timer事件里面组织显示图片就可以了。图片呢,可以把名字存入一个数组,在timer的滴答事件中循环调用,每触发一次数组就移动一个索引,直到最后一个为止。2 . 对于多线程的话,实现这种功能用多线程就是大材小用。不过也可以,你可以把显示图片...

c# 让PictureBox Label等控件对键盘事件做出响应,怎么做?
这些控件没有keydown事件 但主程序form有啊 添加form的keydown事件 然后调用 :比如label.Text="..." PictureBox.Image=null 这样不可以吗???

C# 如何实现右键单击pictureBox中的项目弹出菜单
在界面设计器中加入一个 ContextMenuStrip,加入一个菜单。在ListBox的属性中设定ContextMenu为你建立的那个菜单。然后为你建立的那个菜单项创建Click方法,内容是:if((sender as ListBox).SelectedIndex!=-1)System.Diagnostics.Process.Start((sender as ListBox).SelectedItem.ToString());

C#关于picturebox控件,鼠标点击事件问题
private void pictureBox1_MouseClick(object sender, MouseEventArgs e){ Point p = new Point(e.X,e.Y);MessageBox.Show(e.X.ToString()+"\\t"+e.Y.ToString());}

C# 获得当前控件的名称
控件都有个事件叫enter,可以在enter的事件处理中把控件名(name)写到label

C#如何左键单击picturebox1就在那个位置显示contextMenuStrip1_百度知 ...
注意下是MouseClick事件就行了 private void pictureBox1_MouseClick(object sender, MouseEventArgs e){ if (e.Button == System.Windows.Forms.MouseButtons.Left){ this.contextMenuStrip1.Show(pictureBox1,new Point(e.X, e.Y));} } 可以改弹出菜单的宽度啥的 ...

C# PictureBox 双击事件
获取窗口中的所有PictureBox控件并保存在一个数组中 然后循环注册双击事件 当双击发生时从数组中找出未被点击的PictureBox及被点击的PictureBox 未被点击的PictureBox设置为none 被点击的PictureBox设置为Fill 整合代码如下图所示:GatAllPictureBox函数中的foreach循环有Bug,正确的应该如下:foreach(controls...

相似回答