У меня есть сетка DevExpress, которая отключена на экране. Когда я нажимаю элемент управления, я хочу, чтобы он включался. Прямо сейчас у меня есть событие клика, настроенное для сетки:
private void gridPSR_Click(object sender, EventArgs e)
{
gridPSR.Enabled = true;
}
Это не работает. Как я должен это делать?
Отключенные элементы управления не получают сообщения Windows, поэтому вы никогда не получите сообщение об этом элементе управления. Предполагая, что это Winforms, вы можете прослушивать щелчок по форме (или любому элементу управления, принимающему эту сетку), и проверить, находится ли местоположение щелчка в прямоугольнике отключенного элемента управления, а затем активировать элемент управления соответственно:
void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (gridPSR.ClientRectangle.Contains(e.Location))
{
gridPSR.Enabled = true;
}
}
Я знаю, что это старый пост, но для меня работали вместо ClientRectangle
if (checkBox1.Bounds.Contains(e.Location))
Нажатие кнопки не должно быть private
, оно должно быть protected
.
Во-вторых, я считаю, что если это не сработает, вы не сможете использовать disabled
кнопку для enable
кнопки. Вам нужно будет использовать другую кнопку:
btnGridPSR.Enabled = false;
protected void btnGridStatus_Click(object sender, EventArgs e)
{
btnGridPSR.Enabled = true;
}
Это позволит вам отключить кнопку, так как это отдельная кнопка.
Подумайте об этом так, если ваша кнопка отключена, событие click отключено. Итак, как он может себя позволить?