Używanie funkcji Reset i ShouldSerialize do kontrolowania właściwości (Windows Forms .NET)
Z tego artykułu dowiesz się, jak utworzyć Reset<PropertyName>
metody i ShouldSerialize<PropertyName>
do zarządzania właściwością okna Właściwości w programie Visual Studio. Reset
i ShouldSerialize
to opcjonalne metody, które można podać dla właściwości, jeśli właściwość nie ma prostej wartości domyślnej. Jeśli właściwość ma prostą wartość domyślną, należy zamiast tego zastosować DefaultValueAttribute wartość domyślną i podać jej wartość domyślną do konstruktora klasy atrybutów. Jeden z tych mechanizmów umożliwia korzystanie z następujących funkcji w projektancie:
- Właściwość udostępnia wizualne wskazanie w przeglądarce właściwości, jeśli została zmodyfikowana z jej wartości domyślnej.
- Użytkownik może kliknąć prawym przyciskiem myszy właściwość i wybrać polecenie Resetuj , aby przywrócić właściwość do jej wartości domyślnej.
- Projektant generuje bardziej wydajny kod.
Aby uzyskać więcej informacji na temat właściwości, zobacz Reset i ShouldSerialize.
Kod pomocniczy
W tym artykule przedstawiono Reset
metody i ShouldSerialize
przez utworzenie kontrolki róży kompasu. Jeśli pracujesz z własną kontrolką użytkownika, możesz pominąć tę sekcję.
Dodaj następujące wyliczenie do kodu:
public enum Directions { None, North, NorthEast, East, SouthEast, South, SouthWest, West, NorthWest, }
Public Enum Directions None North NorthEast East SouthEast South SouthWest West NorthWest End Enum
Dodaj kontrolkę użytkownika o nazwie
CompassRose
.Dodaj właściwość o nazwie
Direction
typuDirections
do kontrolki użytkownika.public Directions Direction { get; set; } = Directions.None;
Public Property Direction As Directions = Directions.None
Reset
Metoda Reset<PropertyName>
resetuje odpowiednią <PropertyName>
właściwość do jej wartości domyślnej.
Poniższy kod resetuje Direction
właściwość do None
, która jest uznawana za wartość domyślną dla kontrolki kompasu róży:
private void ResetDirection() =>
Direction = Directions.None;
Private Sub ResetDirection()
Direction = Directions.None
End Sub
ShouldSerialize
Metoda ShouldSerialize<PropertyName>
zwraca wartość logiczną wskazującą, czy właściwość backing została zmieniona na wartość domyślną i powinna zostać serializowana w kodzie projektanta.
Poniższy kod zwraca wartość true, gdy Direction
właściwość nie jest równa None
, co wskazuje, że wybrano kierunek:
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
Przykład
Poniższy kod przedstawia Reset
metody i ShouldSerialize
dla Direction
właściwości :
public partial class CompassRose : UserControl
{
public Directions Direction { get; set; } = Directions.None;
public CompassRose() =>
InitializeComponent();
private void ResetDirection() =>
Direction = Directions.None;
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
}
Public Class CompassRose
Public Property Direction As Directions = Directions.None
Private Sub ResetDirection()
Direction = Directions.None
End Sub
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
End Class
.NET Desktop feedback