Goz*_*Goz 5 c# combobox tabcontrol tabpage winforms
我有一个组合框,我需要在基于C#winforms的应用程序的另一个标签页中镜像.
当您从下拉列表中选择不同的项目时,我有完美的工作代码.然而,不幸的是,当我更改Text未单击的选项卡时,实际上没有任何实际发生.
如果我首先单击每个选项卡,那么一切都按预期工作.
现在我把它归结为某种形式的缺乏初始化首先发生.所以我试图在构造函数中选择每个选项卡.
tabControlDataSource.SelectedIndex = 0;
tabControlDataSource.SelectedIndex = 1;
// etc
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我也试过打电话tabControlDataSource.SelectTab( 1 )但仍然不起作用.
有谁知道如何强制标签"初始化"?
好吧,通常我会在挣扎一个小时后发布问题,然后很快找到解决方案。
TabPage 是延迟初始化的。因此,它们在第一次可见之前不会完全初始化。
所以我将这段代码添加到我的构造函数中:
tabControlDataSource.TabPages[0].Show();
tabControlDataSource.TabPages[1].Show();
tabControlDataSource.TabPages[2].Show();
Run Code Online (Sandbox Code Playgroud)
但这不起作用:(
然而,我突然想到,构造函数可能不是最好的地方。所以我创建了一个事件处理程序,Shown如下所示:
private void MainForm_Shown( object sender, EventArgs e )
{
tabControlDataSource.TabPages[0].Show();
tabControlDataSource.TabPages[1].Show();
tabControlDataSource.TabPages[2].Show();
}
Run Code Online (Sandbox Code Playgroud)
现在一切正常!