public void TextBox_OnHandleDestroyed_InvokeWithHandle_CallsHandleDestroyed(bool modified, EventArgs eventArgs) { using var control = new SubTextBox { Text = "Text", SelectionStart = 1, SelectionLength = 2, Modified = modified }; Assert.NotEqual(IntPtr.Zero, control.Handle); int invalidatedCallCount = 0; control.Invalidated += (sender, e) => invalidatedCallCount++; int styleChangedCallCount = 0; control.StyleChanged += (sender, e) => styleChangedCallCount++; int createdCallCount = 0; control.HandleCreated += (sender, e) => createdCallCount++; int callCount = 0; EventHandler handler = (sender, e) => { Assert.Same(control, sender); Assert.Same(eventArgs, e); callCount++; }; // Call with handler. control.HandleDestroyed += handler; control.OnHandleDestroyed(eventArgs); Assert.Equal(1, callCount); Assert.Equal(s_preferredHeight, control.Height); Assert.Equal(0, control.SelectionStart); Assert.Equal(0, control.SelectionLength); Assert.Equal(modified, control.Modified); Assert.True(control.IsHandleCreated); Assert.Equal(0, invalidatedCallCount); Assert.Equal(0, styleChangedCallCount); Assert.Equal(0, createdCallCount); // Remove handler. control.HandleDestroyed -= handler; control.OnHandleDestroyed(eventArgs); Assert.Equal(1, callCount); Assert.Equal(s_preferredHeight, control.Height); Assert.Equal(0, control.SelectionStart); Assert.Equal(0, control.SelectionLength); Assert.Equal(modified, control.Modified); Assert.True(control.IsHandleCreated); Assert.Equal(0, invalidatedCallCount); Assert.Equal(0, styleChangedCallCount); Assert.Equal(0, createdCallCount); }
public void TextBox_OnHandleDestroyed_Invoke_CallsHandleDestroyed(EventArgs eventArgs) { using var control = new SubTextBox(); int callCount = 0; EventHandler handler = (sender, e) => { Assert.Same(control, sender); Assert.Same(eventArgs, e); callCount++; }; // Call with handler. control.HandleDestroyed += handler; control.OnHandleDestroyed(eventArgs); Assert.Equal(1, callCount); Assert.False(control.IsHandleCreated); // Remove handler. control.HandleDestroyed -= handler; control.OnHandleDestroyed(eventArgs); Assert.Equal(1, callCount); Assert.False(control.IsHandleCreated); }