【问题标题】:Is there any way to focus ( tab control ) picture box?有没有办法聚焦(选项卡控件)图片框?
【发布时间】:2010-06-26 04:55:43
【问题描述】:

我正在使用 C# 开发 .NET 2.0。从文本框按选项卡后如何使控件聚焦到图片框?请给我一个解决方案。

【问题讨论】:

  • 请不要重复标题中的标签。只需将它们留在标签中即可。
  • 另外,哪个图片框? Winforms?
  • 是的,在 winforms 中。从另一个控件按 Tab 后如何设置焦点。

标签: c# .net winforms


【解决方案1】:

Picturebox 控件不是可选控件,因此它不会获得焦点。即使您尝试在表单加载时设置 tabindex 和 tabstop 属性,它也不会获得焦点。

为什么要将焦点设置到图片框?你是用这个控件的点击事件作为按钮点击事件吗?

您能否提供更多详细信息,以便我们为此提供适当的解决方案?

【讨论】:

  • 我认为使用按钮控件将图像属性设置为图像并将平面样式属性设置为平面会更好。这将使按钮控件看起来像一个图片框,您也可以设置该按钮的 tabindex 属性。如果没有使用图片框的具体原因,这很适合您的要求。
  • 是的。我使用按钮完成了,但边缘看起来不像图片框中的那样好。这就是我选择图片框的原因。
【解决方案2】:

创建一个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");
        }

    }
}

【讨论】:

    【解决方案3】:

    您需要将您的PictureBox 包含在可以接收点击事件的控件中。

    【讨论】:

      猜你喜欢
      • 2011-10-24
      • 2013-12-11
      • 2011-04-27
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      相关资源
      最近更新 更多