C# Can';无法获得所需的选项卡页&;要在启动时显示的窗体

C# Can';无法获得所需的选项卡页&;要在启动时显示的窗体,c#,winforms,tabcontrol,tabpage,C#,Winforms,Tabcontrol,Tabpage,修改问题,在通过反复试验找到违规路线后询问原因。答案提示在表单加载之后发生了一些事情。我找到一个行设置选项卡Control1.SelectedIndex=1;tabPage2索引也是1,为什么不选择tabPage2呢?将1更改为0后,所有内容均正确显示 我找不到关于tabControl和SelectedIndex使用的白皮书或教程,有人能告诉我这是如何工作的吗 private void Form1_Load(object sender, EventArgs e) {

修改问题,在通过反复试验找到违规路线后询问原因。答案提示在表单加载之后发生了一些事情。我找到一个行设置选项卡Control1.SelectedIndex=1;tabPage2索引也是1,为什么不选择tabPage2呢?将1更改为0后,所有内容均正确显示

我找不到关于tabControl和SelectedIndex使用的白皮书或教程,有人能告诉我这是如何工作的吗

 private void Form1_Load(object sender, EventArgs e)
        {
            getRegions();
            tabControl1.SelectedIndex = 1;
我有一个Windows窗体,在tabControl1上有10个tabPages。除2号和8号外,要求的变更需要所有其他设备。在删除任何tabPages之前,启动时会显示tabPage2和表单。我可以移除3,4,5,6,7,9,10而没有任何问题(剩下1,2,8)。如果删除tabPage1,则启动时显示的tabPage8和表单为tabPage8。这是tabPage2,我希望它保持这种状态

我已经断断续续地玩了几个星期了,我被难倒了。我似乎找不到任何文章或问题来描述这一点。我发现有多个建议添加这个。tabControl1.SelectedTab=tabPage2;这似乎没什么作用

这可能是什么原因造成的?我需要做什么?(不知道我需要粘贴什么代码,如果需要更多,请告诉我)


首先,请注意Windows窗体设计器,因为它通常会潜入您在进行更改时未预料到的更改中。:)


您可以尝试将this.tabControl1.SelectedTab移到InitializeComponent方法之外(我假设您有一个)。有时,BeginInit/EndInit调用会产生奇怪的副作用。

您可以在InitializeComponent之后或在Form_Load中选择选项卡页,以便在启动时显示

下面是我已经测试过的示例代码

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            //Select tabpage after initialize
            tabControl1.SelectedTab = tabPage3;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //You can select it at form load or at some other action also like a button click
            //tabControl1.SelectedTab = tabPage3;
        }
    }
}

不要在设计器中编写任何代码。始终在InitializeComponent调用之后写入。

这几乎就是所做的。项目的创建者在初始化组件后加入了这个。让我困惑的是tabPage2的索引为1。我将其设置为0,所有操作都正确启动。private void Form1_Load(对象发送方,事件参数e){getRegions();tabControl1.SelectedIndex=1;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            //Select tabpage after initialize
            tabControl1.SelectedTab = tabPage3;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //You can select it at form load or at some other action also like a button click
            //tabControl1.SelectedTab = tabPage3;
        }
    }
}