【问题标题】:How do I check if a checkbox has been checked in another tab in tabcontrol如何检查是否已在 tabcontrol 的另一个选项卡中选中复选框
【发布时间】:2017-01-11 09:11:09
【问题描述】:

所以我对 TabControl 相当陌生,我查看了一些教程,阅读了一些帖子,但我找不到任何关于如何检查一个选项卡中是否选中复选框以及文本框是否包含内容的任何内容,在另一个选项卡中,我认为它称为检查属性,但我不完全确定。

因此,您拥有这个带有 tabControl 的 WPF,该 WPF 在 tabControl 之外有两个选项卡和 1 个按钮。 第一个选项卡包含一个复选框,第二个选项卡包含一个文本框

现在我如何检查复选框是否被选中以及 textbox.text != "" 是否被选中

--更新-- 正如我刚刚发现的,复选框是全局的,只要它们在同一个窗口中,例如,如果文本框在另一个窗口中,我问 fox 如何做到这一点。

【问题讨论】:

    标签: c# wpf checkbox tabcontrol


    【解决方案1】:

    您可以将 CheckBox 的 Name 属性设置为唯一的值,然后在后面的代码中检查它时使用它来获取正确的 CheckBox。

    在 XAML 中设置名称如下所示:

    <CheckBox Name="myCheckBox" />
    

    之后,您可以在后面的代码中使用这样的代码来确定您的 CheckBox 是否已被选中:

    if (myCheckBox.IsChecked) {
        Console.WriteLine("my checkbox is checked.");
    }
    

    要检查是否选中了另一个 Window 或 UserControl 中的 CheckBox,您可以向包含相关 CheckBox 的 Window 添加一个属性,只要 CheckBoxes 选中状态发生更改,您就会更新该属性。

    public bool MyTextBoxIsChecked {get; set;}
    

    【讨论】:

    • 所以选项卡中使用的复选框(不管哪个选项卡)是全局的?
    • 是的,它对于添加到的 UserControl 或 Window 是全局的。
    • 哦!我很高兴你这么说,我想用另一个窗口怎么办?你介意更新你的答案吗?如果你有时间!
    • 我能做到。您能否更新您的问题以包含该信息?这将帮助其他人找到您的问题。
    • 所以我要创建一个 if(MyTextBoxIsChecked) 吗?
    【解决方案2】:

    正如 FlyingFox 的回答,我认为复选框是全局的。

    <Checkbox Name="myCheckBox" />
    
    private void myCheckBox_CheckedChanged(object sender, EventArgs e)
    {
        if (myCheckBox.Checked)
        {
            Console.WriteLine("my checkbox is checked.");
        }
        else if (!myCheckBox.Checked)
        {
            Console.WriteLine("my checkbox is not checked."); 
        }
    }
    

    检查文本框是否有文本:

    if (textbox1.Text.Length > 0)
    {
      Console.WriteLine("Textbox has text"); 
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-24
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 2015-07-06
      相关资源
      最近更新 更多