C#标签文本在方法中没有变化

时间:2017-03-10 20:25:57

标签: c# label

我是c#中间的新人。

我有一个问题,我想更改文本框的文本但我没有发生我必须在论坛上看,但没有任何帮助我。欢迎您的帮助。

创建文本框:

        TextBox _DysplayRulsR = new TextBox();

        _DysplayRulsR.Text = "Hello message";
        _DysplayRulsR.VerticalAlignment = VerticalAlignment.Top;
        _DysplayRulsR.HorizontalAlignment = HorizontalAlignment.Center;
        _DysplayRulsR.Background = Brushes.Transparent;
        _DysplayRulsR.BorderBrush = Brushes.Transparent;
        _DysplayRulsR.IsReadOnly = true;
        _DysplayRulsR.Foreground = Brushes.White;
        _DysplayRulsR.BorderThickness = new Thickness(0, 0, 0, 0);
        _DysplayRulsR.Margin = new Thickness(0, 15, 0, 0);
        _DysplayRulsR.Width = 900;
        _DysplayRulsR.Height = 300;
        _DysplayRulsR.FontSize = 30;
        _DysplayRulsR.TextAlignment = TextAlignment.Center;
        _ContentGrid.Children.Add(_DysplayRulsR);

_ContentGrid = Grid

方法更改文本框文本:

     public static void UpdateRules(string status)
    {
        _DysplayRulsR.Text = "done";
    }

标签显示方法并且使用得很好,但textbox_DysplayRuls的文本不想更改。

对不起我的大概英语,我真的不太适合翻译。

3 个答案:

答案 0 :(得分:0)

您需要更改TextBox的Text属性。

示例:

public static void UpdateRules(string status)
{
    _TextRules.Text = "done";
} 

但是,您确实在上面的初始化代码中显示了_DysplayRuls作为TextBox的名称。确保在我的示例中将_TextRules替换为您要更改的任何TextBox。

答案 1 :(得分:0)

您需要为_DysplayRuls TextBox实例的Text属性指定一个新值。

public static void UpdateRules(string status)
{
    _DysplayRuls.Text = "done";
}

答案 2 :(得分:0)

您的命名约定存在问题。这可能看起来像是尼特,但在这种情况下,它是整体问题的线索。

这一行:

TextBox _DysplayRulsR = new TextBox();

......闻起来很糟糕。如果变量名以下划线开头,则它应该是成员变量。一些开发人员认为下划线是不必要的,但这是一个不同的观点;如果您要使用它们,则不应将它们用于局部变量。

这让我相信这一行:

public static void UpdateRules(string status)
{
    _DysplayRulsR.Text = "done";
}

...实际上是引用名称为_DysplayRulsR的不同文本框,但是在成员而不是本地范围内。

所以你有两个选择:

更改此

TextBox _DysplayRulsR = new TextBox();

到此:

_DysplayRulsR = new TextBox();

OR

将此添加到您的第一个代码块:

_DysplayRulsR.Name = "_DysplayRulsR";

并改变这一点:

public static void UpdateRules(string status)
{
    _DysplayRulsR.Text = "done";
}

到此:

public static void UpdateRules(string status)
{
    _ContentGrid.Children.FindControl("_DysplayRulsR").Text = "done";
}