Я использую кнопку asp внутри пользовательского элемента управления, и этот пользовательский элемент управления находится в другом пользовательском элементе управления, я хочу изменить задний цвет кнопки asp из второго пользовательского элемента управления,Как изменить BackColor кнопки внутри UserControl с другого UserControl?
Я использовал приведенный ниже код, но цвет не меняется. Когда я меняю текст кнопки, используя btn.Text
, это изменится, но когда я сменю btn.BackColor
, это не сработает.
Dim btn As Button = DirectCast(ucontrolLetterSelect.FindControl(buttonID), System.Web.UI.WebControls.Button)
btn.BackColor = System.Drawing.Color.Red
Не используйте 'FindControl', вы создаете скрытые зависимости между страницей, в UserControl а ребенок-UserControl. Скрыт, потому что идентификатор оценивается во время выполнения. Это не удастся, если кто-то изменит идентификатор или тип элемента управления в будущем. Вместо этого предоставляйте общедоступные свойства, которые могут быть установлены с контроллера (страница или родительский UserControl). Используйте значащее имя для свойства, например 'Public Property DeleteColor As Color'. Затем свойство изменяет цвет элемента управления. –
, когда я меняю текст кнопки, используя btn.Text, это изменится, но когда я изменю btn.BackColor, это не сработает. – user3166407
Я не знаю, что Web.UI.WebControls достаточно, чтобы дать ответ, но вы уверены, что BackColor работает «как есть» (вы пытались напрямую изменить обратную цветность?) В большинстве интерфейсов пользовательского интерфейса требуется установить кнопку «flat», чтобы разрешить вы можете напрямую изменить обратную сторону. Не знаю, возможно ли это в стандартных элементах управления ui без CSS. – Jcl