首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinForms TabControl

WinForms TabControl
EN

Stack Overflow用户
提问于 2016-03-25 06:25:08
回答 2查看 124关注 0票数 1

我注意到,通过编程在Tab控件中选择Tab,选择选项卡页selected.Is中包含的控件,就有可能改变这种行为。在选项卡页中有一个控件,当从按钮单击中选择其选项卡页时,该控件不希望被选中。我有一个简单的表单,它有一个选项卡控件和两个选项卡页。单击button1时,选项卡页2将被选中,但包含在该选项卡页中的数据视图也会被选中。

代码语言:javascript
复制
    public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        dataGridView1.GotFocus += DataGridView1_GotFocus;
    }

    private void DataGridView1_GotFocus(object sender, EventArgs e)
    {
       //this event is called from button1_click
    }

    private void button1_Click(object sender, EventArgs e)
    {
        tabControl1.SelectedTab = tabPage2;
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-25 07:16:42

下面是选择选项卡的代码

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
{
    // we can select tab by tab name
    tabControl1.SelectTab("tabPage2");
    tabControl1.SelectedIndex = 1;
    tabControl1.TabPages[0].Hide();
    tabControl1.TabPages[1].Show();
}
票数 0
EN

Stack Overflow用户

发布于 2016-03-25 06:38:16

默认情况下,当您选择一个选项卡(甚至当您启动一个表单)时,您的选项卡顺序中的第一个控件将自动聚焦。我想这就是这里正在发生的事情。

您可以通过简单地分散datagridView的焦点来解决这个问题。有多种方法可以做到这一点。首先,可以将焦点设置为希望被选中的控件,而不是dataGridView。这可以通过以下方式实现:

代码语言:javascript
复制
 myControl.Focus = True;

或者,如果希望选择非控件,则可以将活动控件设置为Null:

代码语言:javascript
复制
 ActiveControl = NULL;

注意:ActiveControl是一个包含当前活动控件的属性。

这段代码应该放在哪里。这完全取决于你。您可以在更改按钮单击事件中的选项卡时立即执行此操作。这是我想要的。

我相信也有其他的传说来达到同样的目的。希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36215099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档