2011-05-10 61 views
3

我有我的C#應用​​程序的一些化網頁瀏覽器,事實上我有10 webBrowser0,webBrowser1,webBrowser2等..如何循環Windows窗體對象incremently

不管怎麼說,我在執行循環計數每個屏幕在每個屏幕上放置一個web瀏覽器,所有這些都很容易完成,但在我的循環中,如果有這樣的事情。

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

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

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

} 

當你能夠看見的,我對代碼翻倍相當多,所以如果我可以指web瀏覽器{}指數,這將是完美的,但那當然是行不通的。

回答

4

你可以定義數組

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

,並在循環使用browsers[index]

+0

謝謝大家的支持,我選擇了這個解決方案,因爲它是小的和基本的,正是我的簡單的應用需求。 – 2011-05-10 10:16:51

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; 
    } 
} 
0

我用同樣的問題,因爲你大量的控制工作的近期和爲他們找到的所有,我選擇使用的控制列表(或簡單的形式使用屬性控制,如果你有正確的控制順序),然​​後我打開它,設置他們的位置每次計算每個位置。

再見。

+0

我不確定你是否已經知道,但是如果你在屏幕中使用界限數組,你不必計算他們的位置。框架已經確切地知道在哪裏計算開始和結束,寬度和高度。我的應用程序只是在interchages內的終端使用。 – 2011-05-15 13:27:14

+0

那麼這就是我想說的計算,使用控制邊界,我們開發自定義列表控件,你是否有一個不斷的高度,(0,0)作爲初始位置,所以在每次迭代中,列表的後部元素並添加高度。我希望我能讓我明白:) – Amedio 2011-05-15 21:42:39

4

你可以做的是使用

var myBrowsers = new List<WebBrowser>(). 

然後你

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]... 
}