#c# #winforms #visual-studio-2010
#c# #winforms #visual-studio-2010
Вопрос:
У меня есть несколько веб-браузеров в моем приложении C #, фактически у меня есть 10. webBrowser0, webBrowser1, webBrowser2 и так далее..
В любом случае, я выполняю цикл для подсчета каждого экрана, чтобы разместить веб-браузер на каждом имеющемся у меня экране, все это делается легко, но в моем цикле, если есть что-то подобное.
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}, это было бы идеально, но это, конечно, не работает.
Ответ №1:
Создайте коллекцию ваших веб-браузеров.
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;
}
}
Ответ №2:
Вы могли бы определить массив
WebBrowser[] browsers = new WebBrowser[] { webBrowser0, webBrowser1, ... };
и используйте browsers[index]
в своем цикле.
Комментарии:
1. Спасибо всем за вашу поддержку, я выбрал это решение, поскольку оно было небольшим и базовым, именно то, что нужно моему простому приложению.
Ответ №3:
Что вы могли бы сделать, так это использовать
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]...
}
Ответ №4:
Недавно я работал с той же проблемой, что и вы: множество элементов управления и для того, чтобы найти их все, я решил использовать список элементов управления (или просто использовать элементы управления свойствами в форме, если у вас элементы управления упорядочены правильно), а затем я перебирал его, устанавливая их местоположение, вычисляя каждую позицию каждый раз.
Увидимся.
Комментарии:
1. Я не уверен, знаете ли вы уже, но вам не нужно вычислять их позиции, если вы используете массив Bounds на экранах. Фреймворк уже точно знает, где он рассчитывается для начала и завершения, ширины и высоты. Мое приложение предназначено только для использования на терминале в interchages.
2. Ну, это было то, что я хотел сказать с calculate, используя границы элементов управления, мы разработали пользовательские элементы управления списком, где у вас была постоянная высота и (0,0) в качестве начальной позиции, поэтому на каждой итерации вы работали с положением заднего элемента списка и добавляли высоту. Я надеюсь, что смог заставить меня понять 🙂