Допустим, у меня есть элемент управления, и я хочу предотвратить его редактирование.
Установка свойства Enabled для элемента управления на False будет работать, но внешний вид элемента управления изменится соответственно, обычно на трудно читаемый черный на сером шрифте. Когда читаемость все еще важна, это реальная проблема.
Для TextBox есть несколько очевидных исправлений:
Textbox1.BackColor = Color.White;
или
Textbox1.ReadOnly= true; // instead of setting Enabled to false
но, к сожалению, это не сработает для всех элементов управления (например, переключателей)
Другое решение состоит в том, чтобы оставить свойство Enabled нетронутым и подписаться на событие focus, как это (но это не очень элегантное решение)
this.Textbox1.Enter += new System.EventHandler(this.Textbox1_Enter);
private void Textbox1_Enter(object sender, EventArgs e)
{
Textbox1.FindForm().ActiveControl = null;
}
Видели ли вы другие способы решения этой проблемы? (и я имею в виду решения реального мира; конечно, вы можете сделать снимок экрана элемента управления и отобразить копию элемента управления ...: p)