Я хочу показать вам мой результат (если у вас был такой же вопрос). Я не совсем счастлив, потому что я не могу переопределить свойство «Enabled». (В комментариях к моему вопросу я написал свою «новую проблему»)
Что бы ..
Прежде всего я создал новое свойство
private bool enabled = true;
public new bool Enabled2 {
get {...}
set {...}
}
Затем я изменил «сеттер» из свойства своей новой функцией:
public new bool Enabled2 {
get { return enabled; }
set {
this.Enabled = enabled = pictureEdit1.Enabled = labelControl1.Enabled = value;
if (pictureEdit1.Image != null && !enabled)
pictureEdit1.Image = setImageDisabled(pictureEdit1.Image);
else
//buttonImage is a property which saves the "normal" image
pictureEdit1.Image = buttonImage;
//without this, the Image doesn't update
if (DesignMode)
Invalidate();
}
}
И, наконец, что не менее важно, моя функция "setImageDisabled":
private Image setImageDisabled(Image image) {
try {
Image grayedImage = ToolStripRenderer.CreateDisabledImage(image);
return grayedImage;
} catch { return null; }
}
Единственная причина, по которой я хочу переопределить свойство "Enabled", заключается в том, что если другой разработчик использует этот UserControl, изображение должно быть серым, если он отключает весь элемент управления.