【问题标题】:Add tabs to an existing tab control in WPF C#将选项卡添加到 WPF C# 中的现有选项卡控件
【发布时间】:2015-10-26 14:59:23
【问题描述】:

我正在尝试将选项卡添加到 WPF 中的选项卡控件,但在运行时控件上没有显示任何内容。我已经尝试按照我一直看到的示例进行操作。现在这是我所拥有的,但它不起作用

_myConnection.Open();
SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
    MessageBox.Show(myReader["SectionName"].ToString());
    TabItem newTabItem = new TabItem
    {
        Header = myReader["SectionName"].ToString(),
        Name = myReader["SectionID"].ToString()
    };
    TabMain.Items.Add(newTabItem);
}
_myConnection.Close();
TabMain.SelectedIndex = 0;

【问题讨论】:

    标签: c# wpf tabs


    【解决方案1】:

    您可以使用以下代码动态添加选项卡。

    添加以下代码以全局声明选项卡控件实例。

    TabControl tbControl;
    

    现在,将以下代码添加到选项卡控件的加载事件中。

    private void tbCtrl_Loaded(object sender, RoutedEventArgs e)
            {
                tbControl = (sender as TabControl);
            }
    

    我已经使用一个按钮为现有选项卡控件添加新选项卡。

    private void btnAdd_Click(object sender, RoutedEventArgs e)
            {
                TabItem newTabItem = new TabItem
                {
                    Header = "Test",
                    Name = "Test"
                };
                tbControl.Items.Add(newTabItem);
            }
    

    以下是我的选项卡控件 xaml 视图。

    <TabControl  x:Name="tbCtrl" HorizontalAlignment="Left" Height="270" Margin="54,36,0,0" VerticalAlignment="Top" Width="524" Loaded="tbCtrl_Loaded">
                <TabItem Header="Tab - 01">
                    <Grid Background="#FFE5E5E5">
                        <Button x:Name="btnAdd" Content="Add New Tab" HorizontalAlignment="Left" Margin="68,95,0,0" VerticalAlignment="Top" Width="109" Height="29" Click="btnAdd_Click"/>
                    </Grid>
                </TabItem>
            </TabControl>
    

    最后,您可以使用它动态地将任意数量的选项卡添加到现有选项卡控件中。

    希望这能满足您的需求。

    【讨论】:

      【解决方案2】:

      也许在您的数据库值中有些东西?我刚刚编写了最简单的 for 循环进行测试,而且效果很好(仅在 XAML 上使用 TabControl 和 OnLoaded 事件):

          private void Window_Loaded(object sender, RoutedEventArgs e)
          {
              for (int i = 1; i <= 3; i++)
              {
                  var item = new TabItem {Header = i.ToString(), Name = $"tab{i}"};
                  TabMain.Items.Add(item);
              }
          }
      

      【讨论】:

      • 我一定有一些更糟的东西,因为这对我也不起作用。我是 WPF 的新手。我已经使用winforms很长时间了。现在我只有一个标签控件的简单标签
      • 如果您按原样使用我的方法,请务必在 XAML 中添加此事件处理程序定义:&lt;Window ...Loaded="Window_Loaded"&gt;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2017-05-18
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多