为多个控件分配可见性的最佳方法是什么

use*_*117 4 c# arrays boolean

好吧所以我正在尝试清理我的代码,因为它是一个混乱,我有25个richtext框,我想将他们的.Visible变量放入一个数组并有一个for语句通过并使每个错误,以便文本框没有显示我尝试过没有工作,我无法弄明白我的是什么.

bool[] box =  new bool[25];

box[0] = richTextBox1.Visible;
box[1] = richTextBox2.Visible;
box[2] = richTextBox3.Visible;
box[3] = richTextBox4.Visible;
box[4] = richTextBox5.Visible;
box[5] = richTextBox6.Visible;
box[6] = richTextBox7.Visible;
box[7] = richTextBox8.Visible;
box[5] = richTextBox6.Visible;
box[6] = richTextBox7.Visible;
box[7] = richTextBox8.Visible;
box[8] = richTextBox9.Visible;
box[9] = richTextBox10.Visible;
box[10] = richTextBox11.Visible;
box[11] = richTextBox12.Visible;
box[12] = richTextBox13.Visible;
box[13] = richTextBox14.Visible;
box[14] = richTextBox15.Visible;
box[15] = richTextBox16.Visible;
box[16] = richTextBox17.Visible;
box[17] = richTextBox18.Visible;
box[18] = richTextBox19.Visible;
box[19] = richTextBox20.Visible;
box[20] = richTextBox21.Visible;
box[21] = richTextBox22.Visible;
box[22] = richTextBox23.Visible;
box[23] = richTextBox24.Visible;
box[24] = richTextBox25.Visible;

for(int y = 0; y <25; y++)
  {
    box[y] = false;
  }
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 11

您可以bool在数组中更改并期望更改VisibleTextBox 的状态.

你必须改变那个属性.因此你要么将这些控件存储在集合中或使用不同的方法:如果他们是在同一个容器控件(如Form,GroupBox,Panel等),你可以使用 Enumerable.OfType.

例如:

var allRichTextBoxes = this.Controls.OfType<RichTextBox>()
    .Where(txt => txt.Name.StartsWith("richTextBox"));
foreach(var rtb in allRichTextBoxes)
    rtb.Visible = false;
Run Code Online (Sandbox Code Playgroud)