Когда вы создаете элемент управления, унаследованный от Control
, вы должны использовать пару свойств, таких как IsDesignMode
, затем вы можете создавать обработчики событий специально для режима разработки:
if (IsDesignMode){
// Handle the interactivity in Design mode, such as changing a property on the
// Properties toolbox
}
Предположим, что у элемента управления есть событие, например MouseClick
, вы можете сделать это:
private void control_MouseClick(object sender, MouseEventArgs e){
if (IsDesignMode){
// Do something here depending on the Click event within the Designer
}else{
// This is at run-time...
}
}
Другое, о чем я могу думать, это ' ShouldSerialize ', за которым следует общедоступное свойство, чтобы сохранить свойство в сгенерированном дизайнером коде, предположим, например, что элемент управления имеет логическое свойство Foo
public bool Foo{
get{ return this._foo; }
set{ if (this._foo != value){
this._foo = value;
}
}
}
public bool ShouldSerializeFoo(){
return true; // The property will be persisted in the designer-generated code
// Check in Form.Designer.cs...
}
Если ShouldSerializeFoo
вернул false, свойство не сохраняется, наоборот, когда true, оно будет скрыто в коде Form.Designer.cs ...
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.