Я понял, что проблема была. Когда я инициализировал keystone, я импортировал маршруты перед импортом моделей, поэтому они (модели) никогда не устанавливались во время выполнения, в результате чего keystone выдавала ошибку. Если у вас есть похожая проблема, проверьте тройной порядок, в котором вы импортируете модели / маршруты / и т. Д.
Смотрите на ControlPaint. Метод DrawStringDisabled; это могло бы быть что-то полезное. Я использовал его при переопределении события OnPaint для пользовательских элементов управления.
ControlPaint.DrawStringDisabled(g, this.Text, this.Font, Color.Transparent,
new Rectangle(CustomStringWidth, 5, StringSize2.Width, StringSize2.Height), StringFormat.GenericTypographic);
Вы попытались реализовать событие EnabledChanged? Или Вы ищете больше свойства "стилей" на управлении (насколько я знаю, они не существуют)?
Для текстового поля можно установить свойство только для чтения на истинный, в то время как удержание контроль включило. Можно затем установить свойство BackColor и ForeColor на то, что Вы любите. Пользователь все еще сможет нажать на управление и иметь мерцающий курсор, но они не смогут отредактировать что-либо.
Не уверенный, если это экстраполирует к другим типам управления как поля комбинированного списка или этажерка, поскольку у меня не было шанса экспериментировать все же, но это стоит того, чтобы попытаться.
Почему это - проблема?
Я лично позволил бы окнам обработать его. Люди привыкли к отключенным объектам, выглядящим определенным путем, поэтому если Вы начинаете пытаться изменить каждый аспект способа, которым они смотрят, Вы могли бы начать смущать своих пользователей.
Необходимо будет, вероятно, переопределить событие Paint. Все инструментарии, которые я использовал до сих пор, имеют ту же проблему, когда управление отключено. Просто угадайте, что они позволяют окнам сделать рисунок текста. Что касается маркировок, хорошо они не стандартное управление, и вот почему они работают.