如何循环窗口窗体对象

时间:2011-05-10 09:46:41

标签: c# winforms visual-studio-2010

我的C#应用​​程序上有一些webBrowsers,实际上我有10. webBrowser0,webBrowser1,webBrowser2等等。

无论如何,我正在执行一个循环来计算每个屏幕以在我拥有的每个屏幕上放置一个webBrowser,这一切都很容易完成,但在我的循环中,如果有这样的东西。

for (index = 0; index <= totalScreens; index++)
{

if (index == 0)
{
webBrowser0.Width = x;
webBrowser0.Height = x;
}

if (index == 1)
{
webBrowser1.Width = x;
webBrowser1.Height = x;
}

}

正如你所看到的,我在代码上翻了很多,所以如果我可以参考webBrowser {index}那将是完美的但当然不起作用。

4 个答案:

答案 0 :(得分:5)

创建WebBrowsers的集合。

List<WebBrowser> browsers = new List<WebBrowser> {webBrowser0,webBrowser1};

for (index = 0; index <= totalScreens; index++)
{
    if(index < browsers.Count)
    {
        browsers[index].Width = x;
        browsers[index].Height = x;
    }
}

答案 1 :(得分:4)

您可以定义一个数组

WebBrowser[] browsers = new WebBrowser[] { webBrowser0, webBrowser1, ... };

并在循环中使用browsers[index]

答案 2 :(得分:4)

你可以做的是使用

var myBrowsers = new List<WebBrowser>().  

然后使用

添加WebBrowsers
myBrowsers.Add(new WebBrowser());  // Do this 10 times for 10 browsers.

以这种方式你可以使用

myBrowser[index]

或访问循环中的每一个

foreach (var aBrowser in myBrowsers)
{
   aBrowser...
}

for (var i = 0; i < myBrowsers.Count; i++)
{
  myBrowser[i]...
}

答案 3 :(得分:0)

我最近遇到的问题与你的许多控件相同,并且为了找到所有控件,我选择使用控件列表(或者只是在命令控件中使用表单中的属性控件)正确的)然后我循环它设置他们的位置每次计算每个位置。

见。