Как включить отключенный элемент управления при клике

1

У меня есть сетка DevExpress, которая отключена на экране. Когда я нажимаю элемент управления, я хочу, чтобы он включался. Прямо сейчас у меня есть событие клика, настроенное для сетки:

        private void gridPSR_Click(object sender, EventArgs e)
        {
            gridPSR.Enabled = true;
        }

Это не работает. Как я должен это делать?

Теги:
grid
click
devexpress
isenabled

3 ответа

5

Отключенные элементы управления не получают сообщения Windows, поэтому вы никогда не получите сообщение об этом элементе управления. Предполагая, что это Winforms, вы можете прослушивать щелчок по форме (или любому элементу управления, принимающему эту сетку), и проверить, находится ли местоположение щелчка в прямоугольнике отключенного элемента управления, а затем активировать элемент управления соответственно:

void Form1_MouseClick(object sender, MouseEventArgs e)
{
    if (gridPSR.ClientRectangle.Contains(e.Location))
    {
        gridPSR.Enabled = true;
    }
}
  • 0
    Хороший ответ, даже не думал об этом варианте.
2

Я знаю, что это старый пост, но для меня работали вместо ClientRectangle

if (checkBox1.Bounds.Contains(e.Location))
0

Нажатие кнопки не должно быть private, оно должно быть protected.

Во-вторых, я считаю, что если это не сработает, вы не сможете использовать disabled кнопку для enable кнопки. Вам нужно будет использовать другую кнопку:

btnGridPSR.Enabled = false;
protected void btnGridStatus_Click(object sender, EventArgs e)
{
     btnGridPSR.Enabled = true;
}

Это позволит вам отключить кнопку, так как это отдельная кнопка.

Подумайте об этом так, если ваша кнопка отключена, событие click отключено. Итак, как он может себя позволить?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню