【发布时间】:2010-06-26 04:55:43
【问题描述】:
我正在使用 C# 开发 .NET 2.0。从文本框按选项卡后如何使控件聚焦到图片框?请给我一个解决方案。
【问题讨论】:
-
请不要重复标题中的标签。只需将它们留在标签中即可。
-
另外,哪个图片框? Winforms?
-
是的,在 winforms 中。从另一个控件按 Tab 后如何设置焦点。
我正在使用 C# 开发 .NET 2.0。从文本框按选项卡后如何使控件聚焦到图片框?请给我一个解决方案。
【问题讨论】:
Picturebox 控件不是可选控件,因此它不会获得焦点。即使您尝试在表单加载时设置 tabindex 和 tabstop 属性,它也不会获得焦点。
为什么要将焦点设置到图片框?你是用这个控件的点击事件作为按钮点击事件吗?
您能否提供更多详细信息,以便我们为此提供适当的解决方案?
【讨论】:
创建一个button1,然后设置它的TabIndex小于pictureBox1的;将button1 放在pictureBox1 的顶部。然后在运行时将其隐藏在pictureBox1 后面。为了给图片框具有焦点的视觉提示,将 BorderStyle 设置为 Fixed3d,当它失去焦点时将其设置为 none。
概念证明:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestPicture
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button1.SendToBack();
pictureBox1.Click += button1_Click;
}
private void button1_Enter(object sender, EventArgs e)
{
pictureBox1.BorderStyle = BorderStyle.Fixed3D;
}
private void button1_Leave(object sender, EventArgs e)
{
pictureBox1.BorderStyle = BorderStyle.None;
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Test");
}
}
}
【讨论】:
您需要将您的PictureBox 包含在可以接收点击事件的控件中。
【讨论】: