Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#方法中标签文本未更改 我是C中的新手。_C#_Label - Fatal编程技术网

C#方法中标签文本未更改 我是C中的新手。

C#方法中标签文本未更改 我是C中的新手。,c#,label,C#,Label,我有一个问题,我想改变文本框的文本,但我没有发生我必须在论坛上看,但没有任何帮助我。欢迎你的帮助 创建文本框: TextBox _DysplayRulsR = new TextBox(); _DysplayRulsR.Text = "Hello message"; _DysplayRulsR.VerticalAlignment = VerticalAlignment.Top; _DysplayRulsR.HorizontalAli

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

创建文本框:

        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";
    }
标签显示良好,方法和使用良好,但文本框的文本不希望更改


抱歉,我的英语水平不高,翻译能力不强。

您需要更改文本框的
Text
属性

例如:

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

但是,您确实在上述初始化代码中将
\u DysplayRuls
显示为文本框的名称。在我的示例中,请确保将
\u TextRules
替换为您要更改的任何文本框。

您需要为您的\u dyPlayruls TextBox实例的Text属性指定一个新值

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

您对命名约定有问题。这似乎是一个错误,但在这种情况下,这是一个整体问题的线索

这一行:

TextBox _DysplayRulsR = new TextBox();
…闻起来很难闻。如果变量名以下划线开头,则应为成员变量。一些开发者认为下划线是不必要的,但这是另一个观点;如果要使用它们,就不应该将它们用于局部变量

这让我相信这句话:

public static void UpdateRules(string status)
{
    _DysplayRulsR.Text = "done";
}
…实际上引用了另一个名为
\u DysplayRulsR
的文本框,但该文本框位于成员范围,而不是本地范围

所以你有两个选择:

改变这个

TextBox _DysplayRulsR = new TextBox();
为此:

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

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

_DysplayRulsR.Name = "_DysplayRulsR";
改变这一点:

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

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

它应该是
\u TextRules.Text=“完成”
您的文本框不属于容器。@larsTech当然,如果我没有将所有代码放在一起以便更清晰,\u ContentGrid.Children.Remove(\u dyplayruls);ContentGrid是什么类型的控件?你为什么要在里面贴标签?你为什么要把它拿走?什么是规则?在简化帖子的过程中,您留下了许多悬而未决的问题。最简洁的方法是将文本绑定到属性,确保绑定模式是双向的。然后更新财产。非常感谢你的帮助,一个愚蠢的错误。但这些都是已经犯下的一些错误。大家好