Предпосылка: - У нас есть список пар ключ-значение.
Количество элементов этого списка будет различным.
У нас есть форма с кучей кнопки по умолчанию на нем. (Правка - Построен ранее в конструкторе, а не во время выполнения.)
Кнопки называются «button1, button2, ...»
У нас больше кнопок, чем элементов в списке.
Во время выполнения мы хотим перенести информацию из элементов списка на кнопки и скрыть неиспользуемые кнопки.
Мой вопрос заключается в том, как обращаться к этим кнопкам с помощью al oop?
Используя a для l oop в VBA, я мог бы сказать следующее: -
Me.Controls("TB_Item" & Format(i, "00")).Visible = False
В C# у меня есть этот минимальный пример в качестве отправной точки (Форма имеет 10 кнопки): -
public UF_ButtonLoop()
{
InitializeComponent();
List<KeyValuePair<string, string>> MyItems = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("Apple", "Green Fruit"),
new KeyValuePair<string, string>("Orange", "Orange Fruit"),
new KeyValuePair<string, string>("Sprout", "Spawn of the Devil"),
new KeyValuePair<string, string>("Hershey Bar", "A bit like chocolate"),
new KeyValuePair<string, string>("Beefburger", "Man Food")
};
//Loop through the 10 buttons
for (int i = 1; i < 11; i++)
{
if (i <= MyItems.Count )
{
//Transfer Data from list to button
//Pseudo code
Control("Button" + i).Text = (MyItems.ElementAt(i).Key);
Control("Button" + i).Tag = (MyItems.ElementAt(i).Value);
}
else
{
//Hide the button as we've reached the end of the list so have no use for it.
//Pseudo code
Control("button" + 1).Hide();
}
// Note, VBA methos is:-
// Me.Controls("TB_Item" & Format(i, "00")).Visible = False
}
}
Управление («Кнопка» + i) неверный синтаксис.
Можно ли сделать это в C#, если да, то как?
Если нет, каков правильный путь?
Также я новичок здесь, так что, если я спрашиваю вещи неправильно, пожалуйста, не стесняйтесь говорить мне об этом!
Многие спасибо, Оуэн С.