Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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# - Fatal编程技术网

C# 更改表单中所有项的文本属性

C# 更改表单中所有项的文本属性,c#,C#,我的c#表单上有许多按钮和标签。我有一个按钮,可以更改所有Buton和标签的文本属性(更改语言按钮)。我是否必须在按钮的单击事件中写入所有项,或者是否有一种方法可以扫描所有表单控件项并更改其文本属性 还有许多其他控件包含标签或按钮。例如,一个标签被添加到面板的控件中,当我迭代表单控件时,我无法访问该标签。我想一次更改所有项目的文本属性 谢谢。有一个属性包含表单的所有控件。您可以对其进行迭代: foreach(var control in Controls) { var button =

我的c#表单上有许多按钮和标签。我有一个按钮,可以更改所有Buton和标签的文本属性(更改语言按钮)。我是否必须在按钮的单击事件中写入所有项,或者是否有一种方法可以扫描所有表单控件项并更改其文本属性

还有许多其他控件包含标签或按钮。例如,一个标签被添加到面板的控件中,当我迭代表单控件时,我无法访问该标签。我想一次更改所有项目的文本属性

谢谢。

有一个属性包含表单的所有控件。您可以对其进行迭代:

foreach(var control in Controls)
{
    var button = control as Button;
    if(button != null)
        button.Text = Translate(button.Text);
    else
    {
        var label = control as Label;
        if(label != null)
            label .Text = Translate(label .Text);
    }
}
有一个属性包含窗体的所有控件。您可以对其进行迭代:

foreach(var control in Controls)
{
    var button = control as Button;
    if(button != null)
        button.Text = Translate(button.Text);
    else
    {
        var label = control as Label;
        if(label != null)
            label .Text = Translate(label .Text);
    }
}

如果是
winforms
,您应该在此处阅读有关
本地化应用程序的内容:


如果是
winforms
,您应该在此处阅读有关
本地化应用程序的内容:


我认为如果您使用的是javascript,您只需通过DOM修改按钮和标签的文本即可。使用jQuery这将非常简单

我认为如果您使用的是javascript,您可以简单地遍历DOM并修改按钮和标签的文本。使用jQuery对于web应用程序来说这将非常简单,使用jQuery可以很容易地做到这一点。看看这个:

对于Winforms,您可以使用以下选项:

foreach (var c in Controls.OfType<TextBox>())
    c.Text = "TextBox Text";

foreach (var c in Controls.OfType<Label>())
    c.Text = "Label text";
foreach(Controls.OfType()中的var c)
c、 Text=“TextBox Text”;
foreach(Controls.OfType()中的var c)
c、 Text=“标签文本”;

<>但是我同意@ IONDEN,你应该考虑本地化你的应用程序。 对于web应用程序,使用jQuery可以很容易地做到这一点。看看这个:

对于Winforms,您可以使用以下选项:

foreach (var c in Controls.OfType<TextBox>())
    c.Text = "TextBox Text";

foreach (var c in Controls.OfType<Label>())
    c.Text = "Label text";
foreach(Controls.OfType()中的var c)
c、 Text=“TextBox Text”;
foreach(Controls.OfType()中的var c)
c、 Text=“标签文本”;

<>但是我同意@ IONDEN,你应该考虑本地化你的应用程序。 假设ASP.NET的
(与Winforms控件类似):


这将在实现
ITextControl
(如标签或文本框)的每个子控件上应用给定的文本。

假设
ASP.NET的
(适用于Winforms控件):

这将在实现
ITextControl
(如标签或文本框)的每个子控件上应用给定的文本

}

如果发生CS0120错误,请将
yourFormName.Controls
更改为
this.Controls

    foreach( Control ctlparent in this.Controls)
    {
      if(ctlparent is Panel or ctlparent is GroupBox)
      {
           foreach(Control ctl in ctlparent.Controls)
{
        if(ctl is Label or ctl is Button)
        {
            ctl.Text= newtext;
         }
    }}
}

如果发生CS0120错误,请将
yourFormName.Controls
更改为
this.Controls

    foreach( Control ctlparent in this.Controls)
    {
      if(ctlparent is Panel or ctlparent is GroupBox)
      {
           foreach(Control ctl in ctlparent.Controls)
{
        if(ctl is Label or ctl is Button)
        {
            ctl.Text= newtext;
         }
    }}
这会奏效的


这将起作用。

我如何迭代?我有一个这样的方法。CsNAddCamButton.Text=SetGUIItemString(guiiteindex.CsNAddCamButton);我正在从xml文件中获取字符串。控件没有文本属性。我应该将其转换为类型吗?如何进行迭代?我有一个这样的方法。CsNAddCamButton.Text=SetGUIItemString(guiiteindex.CsNAddCamButton);我正在从xml文件中获取字符串。控件没有文本属性。我应该把它转换成一个类型吗?你使用什么Gui技术?WinForms、WPF、ASP.NET?另外,通常gui框架和.net也有一些用于本地化的API,所以你不需要自己重新设计。要向刚刚完成应用程序本地化的程序员解释,真正的用户在使用程序时不会更改他们的母语,这是非常困难的。ComponentResourceManager.ApplyResources()方法。您使用什么Gui技术?WinForms、WPF、ASP.NET?另外,通常gui框架和.net也有一些用于本地化的API,所以你不需要自己重新设计。要向刚刚完成应用程序本地化的程序员解释,真正的用户在使用程序时不会更改他们的母语,这是非常困难的。ComponentResourceManager.ApplyResources()方法。这是可行的,但我必须迭代表单中的所有控件,对吗?因为我的一些控件被添加到面板中。我想我必须在面板中迭代控件,等等。你可以这样做。。。首先遍历所有容器控件,如panel group box,并在其中再次为每个控件编写一个“更改”按钮和标签。。这会起作用,但我必须迭代表单中的所有控件,对吗?因为我的一些控件被添加到面板中。我想我必须在面板中迭代控件,等等。你可以这样做。。。首先遍历所有容器控件,如panel group box,并在其中再次为每个控件编写一个“更改”按钮和标签。。这将起作用CS0120:非静态字段、方法或属性“System.Web.UI.Control.Controls.get”需要对象引用CS0120:非静态字段、方法或属性“System.Web.UI.Control.Controls.get”需要对象引用
foreach (Control objCtrl in yourFormName.Controls) {
    if (objCtrl  is Label)
    {
        // Assign Some Text 
    }


    if (objCtrl  is Button)
    {
        // Assign some text
    }
    foreach( Control ctlparent in this.Controls)
    {
      if(ctlparent is Panel or ctlparent is GroupBox)
      {
           foreach(Control ctl in ctlparent.Controls)
{
        if(ctl is Label or ctl is Button)
        {
            ctl.Text= newtext;
         }
    }}