【问题标题】:How can I get the Textbox of a Tabpage in c# UWP?如何在 c# UWP 中获取标签页的文本框?
【发布时间】:2021-04-28 14:55:16
【问题描述】:

我是 c# UWP 的新手,我尝试制作一个 tabcontrol,效果很好。 现在我尝试获取tabcontrol的当前文本框,但没有成功。

我已经在 winforms 中做到了,效果很好:

private RichTextBox GetRichTextBox()
    {
        RichTextBox richtext= null;
        TabPage tab = tabControl1.SelectedTab;

        if (tab != null)
        {
            richtext = tab .Controls[0] as RichTextBox;
        }
        return richtext ;
    }

所以我不知道如何在 UWP 中做同样的事情。

如果有人可以帮助我,我会很高兴:D

编辑:

NuGet 的导入

xmlns:muxc="using:Microsoft.UI.Xaml.Controls"

这里是 MainPage.xaml 中的 tabcontrol:

<!--Tabcontrol-->
    <muxc:TabView HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
            AddTabButtonClick="TabView_AddTabButtonClick"
            TabCloseRequested="TabView_TabCloseRequested"
            Name="EditTabControl">
        <muxc:TabView.TabStripHeader>
            <Grid x:Name="ShellTitlebarInset" Background="Transparent" />
        </muxc:TabView.TabStripHeader>
        <muxc:TabView.TabStripFooter>
            <Grid x:Name="CustomDragRegion" Background="Transparent" />
        </muxc:TabView.TabStripFooter>
    </muxc:TabView>

这里是我如何使用文本框创建标签页

    void NewDocument(string text, string DocTitle)
    {
        var newTab = new muxc.TabViewItem();
        newTab.Header = DocTitle;
        TextBox tb = new TextBox();
        Thickness margin = tb.Margin;
        margin.Top = 40;

        tb.Text = text;
        tb.Margin = margin;
        tb.HorizontalAlignment = HorizontalAlignment.Stretch;
        tb.VerticalAlignment = VerticalAlignment.Stretch;
        tb.AcceptsReturn = true;
        tb.FontSize = 20;
        tb.IsSpellCheckEnabled = true;
        tb.IsHandwritingViewEnabled = true;
        tb.IsTapEnabled = true;
        ScrollViewer.SetVerticalScrollBarVisibility(tb, ScrollBarVisibility.Auto);
        ScrollViewer.SetHorizontalScrollBarVisibility(tb, ScrollBarVisibility.Auto);

        newTab.Content = tb;
        EditTabControl.TabItems.Add(newTab);
        EditTabControl.SelectedIndex = EditTabControl.TabItems.Count - 1;
    }

【问题讨论】:

  • 能否附上关于选项卡控件和文本框的 UWP xaml 代码?
  • 我已经编辑过了

标签: c# uwp tabs textbox


【解决方案1】:

您可以先尝试获取 TabViewItems 的列表,然后根据索引获取特定的 TabItem。然后就可以拿到 TabViewItem 的内容了,应该是 TextBox 控件。

您可以参考以下代码:

          //get the tabitems array
        var TabItems = EditTabControl.TabItems.ToArray();
        //get the tabitem based on the index.
        MUXC.TabViewItem targetItem = (MUXC.TabViewItem)TabItems[0];
        //get the textbox you added to the tabitem
        TextBox content = (TextBox)targetItem.Content;
        //change the text
        content.Text = "This is test";

【讨论】:

  • 感谢您的有用回答,它帮助很大。 :D
  • @codingjuli 如果它解决了您的问题,您可以接受它作为答案,以便它可以帮助面临同样问题的其他人。
猜你喜欢
  • 2011-04-07
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
相关资源
最近更新 更多