Динамическое построение кнопок - PullRequest
3 голосов
/ 01 февраля 2012

Я использую VB.Net. У меня есть список из 13 кнопок. Названия этих кнопок составлены из комбинации трех разных переменных.

Мне нужно отключить все эти кнопки. Я не хочу перебирать каждую кнопку, чтобы отключить их. Я хотел бы динамически вызывать эти кнопки в цикле и затем отключать их. Как то так;

For Count = 1 To 13
    PeriodRoomID = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(3) & Count)
    PeriodRoomID.Enabled = False
    PeriodRoomID.Backcolor = Color.Gray
Next

Проблема в том, что после создания переменной PeriodRoomID я не могу обратиться к ней как к кнопке, потому что;

  • Это означало бы, что есть две кнопки с одинаковым именем.
  • PeriodRoomID является строкой и поэтому не может быть включен, потому что это не имеет смысла.

Как мне обойти это?

1 Ответ

3 голосов
/ 01 февраля 2012

Вы можете попробовать метод Controls.Find .

dim cntrl() as Control
For Count = 1 To 13 
    PeriodRoomID = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(3) & Count) 
    cntrl = Me.Controls.Find(PeriodRoomID,True)
    cntrl(0).Enabled = False
    cntrl(0).Backcolor = Color.Gray
Next 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...