diff --git a/src/System.Windows.Forms/src/PublicAPI.Shipped.txt b/src/System.Windows.Forms/src/PublicAPI.Shipped.txt index 7e33730830c..32944e995f8 100644 --- a/src/System.Windows.Forms/src/PublicAPI.Shipped.txt +++ b/src/System.Windows.Forms/src/PublicAPI.Shipped.txt @@ -60,8 +60,8 @@ ~override System.Windows.Forms.ContainerControl.OnMove(System.EventArgs e) -> void ~override System.Windows.Forms.ContainerControl.OnParentChanged(System.EventArgs e) -> void ~override System.Windows.Forms.ContainerControl.OnResize(System.EventArgs e) -> void -~override System.Windows.Forms.Control.Site.get -> System.ComponentModel.ISite -~override System.Windows.Forms.Control.Site.set -> void +override System.Windows.Forms.Control.Site.get -> System.ComponentModel.ISite? +override System.Windows.Forms.Control.Site.set -> void ~override System.Windows.Forms.ControlBindingsCollection.AddCore(System.Windows.Forms.Binding dataBinding) -> void ~override System.Windows.Forms.ControlBindingsCollection.RemoveCore(System.Windows.Forms.Binding dataBinding) -> void ~override System.Windows.Forms.CurrencyManager.Current.get -> object @@ -907,8 +907,8 @@ override System.Windows.Forms.TableLayoutPanel.OnPaintBackground(System.Windows. ~System.Windows.Forms.ContainerControl.ActiveControl.get -> System.Windows.Forms.Control ~System.Windows.Forms.ContainerControl.ActiveControl.set -> void ~System.Windows.Forms.ContainerControl.ParentForm.get -> System.Windows.Forms.Form -~System.Windows.Forms.Control.BeginInvoke(System.Action method) -> System.IAsyncResult -~System.Windows.Forms.Control.BeginInvoke(System.Delegate method) -> System.IAsyncResult +System.Windows.Forms.Control.BeginInvoke(System.Action! method) -> System.IAsyncResult! +System.Windows.Forms.Control.BeginInvoke(System.Delegate! method) -> System.IAsyncResult! ~System.Windows.Forms.Control.BeginInvoke(System.Delegate method, params object[] args) -> System.IAsyncResult ~System.Windows.Forms.Control.Contains(System.Windows.Forms.Control ctl) -> bool ~System.Windows.Forms.Control.CreateGraphics() -> System.Drawing.Graphics @@ -945,11 +945,11 @@ System.Windows.Forms.Control.ProductVersion.get -> string! System.Windows.Forms.Control.Region.get -> System.Drawing.Region? System.Windows.Forms.Control.Region.set -> void ~System.Windows.Forms.Control.ScaleBitmapLogicalToDevice(ref System.Drawing.Bitmap logicalBitmap) -> void -~System.Windows.Forms.Control.Tag.get -> object -~System.Windows.Forms.Control.Tag.set -> void -~System.Windows.Forms.Control.TopLevelControl.get -> System.Windows.Forms.Control -~System.Windows.Forms.Control.WindowTarget.get -> System.Windows.Forms.IWindowTarget -~System.Windows.Forms.Control.WindowTarget.set -> void +System.Windows.Forms.Control.Tag.get -> object? +System.Windows.Forms.Control.Tag.set -> void +System.Windows.Forms.Control.TopLevelControl.get -> System.Windows.Forms.Control? +System.Windows.Forms.Control.WindowTarget.get -> System.Windows.Forms.IWindowTarget! +System.Windows.Forms.Control.WindowTarget.set -> void ~System.Windows.Forms.ControlBindingsCollection.Add(string propertyName, object dataSource, string dataMember) -> System.Windows.Forms.Binding ~System.Windows.Forms.ControlBindingsCollection.Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled) -> System.Windows.Forms.Binding ~System.Windows.Forms.ControlBindingsCollection.Add(string propertyName, object dataSource, string dataMember, bool formattingEnabled, System.Windows.Forms.DataSourceUpdateMode updateMode) -> System.Windows.Forms.Binding @@ -1937,8 +1937,8 @@ System.Windows.Forms.TableLayoutPanel.SetRowSpan(System.Windows.Forms.Control! c ~virtual System.Windows.Forms.Control.OnValidated(System.EventArgs e) -> void ~virtual System.Windows.Forms.Control.OnValidating(System.ComponentModel.CancelEventArgs e) -> void ~virtual System.Windows.Forms.Control.OnVisibleChanged(System.EventArgs e) -> void -~virtual System.Windows.Forms.Control.Text.get -> string -~virtual System.Windows.Forms.Control.Text.set -> void +virtual System.Windows.Forms.Control.Text.get -> string! +virtual System.Windows.Forms.Control.Text.set -> void ~virtual System.Windows.Forms.DataGridView.AdjustColumnHeaderBorderStyle(System.Windows.Forms.DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStyleInput, System.Windows.Forms.DataGridViewAdvancedBorderStyle dataGridViewAdvancedBorderStylePlaceholder, bool isFirstDisplayedColumn, bool isLastVisibleColumn) -> System.Windows.Forms.DataGridViewAdvancedBorderStyle ~virtual System.Windows.Forms.DataGridView.AdjustedTopLeftHeaderBorderStyle.get -> System.Windows.Forms.DataGridViewAdvancedBorderStyle ~virtual System.Windows.Forms.DataGridView.CreateColumnsInstance() -> System.Windows.Forms.DataGridViewColumnCollection @@ -3107,7 +3107,7 @@ override System.Windows.Forms.ListBox.SelectedIndex.set -> void override System.Windows.Forms.ListBox.SetBoundsCore(int x, int y, int width, int height, System.Windows.Forms.BoundsSpecified specified) -> void override System.Windows.Forms.ListBox.SetItemCore(int index, object! value) -> void override System.Windows.Forms.ListBox.SetItemsCore(System.Collections.IList! value) -> void -override System.Windows.Forms.ListBox.Text.get -> string? +override System.Windows.Forms.ListBox.Text.get -> string! override System.Windows.Forms.ListBox.Text.set -> void override System.Windows.Forms.ListBox.ToString() -> string! override System.Windows.Forms.ListBox.WndProc(ref System.Windows.Forms.Message m) -> void @@ -5859,8 +5859,8 @@ System.Windows.Forms.Control.Capture.set -> void System.Windows.Forms.Control.CausesValidation.get -> bool System.Windows.Forms.Control.CausesValidation.set -> void System.Windows.Forms.Control.CausesValidationChanged -> System.EventHandler? -System.Windows.Forms.Control.ChangeUICues -> System.Windows.Forms.UICuesEventHandler -System.Windows.Forms.Control.Click -> System.EventHandler +System.Windows.Forms.Control.ChangeUICues -> System.Windows.Forms.UICuesEventHandler? +System.Windows.Forms.Control.Click -> System.EventHandler? System.Windows.Forms.Control.ClientRectangle.get -> System.Drawing.Rectangle System.Windows.Forms.Control.ClientSize.get -> System.Drawing.Size System.Windows.Forms.Control.ClientSize.set -> void @@ -5881,7 +5881,7 @@ System.Windows.Forms.Control.ControlAccessibleObject.NotifyClients(System.Window System.Windows.Forms.Control.ControlAccessibleObject.NotifyClients(System.Windows.Forms.AccessibleEvents accEvent, int childID) -> void System.Windows.Forms.Control.ControlAccessibleObject.NotifyClients(System.Windows.Forms.AccessibleEvents accEvent, int objectID, int childID) -> void System.Windows.Forms.Control.ControlAccessibleObject.Owner.get -> System.Windows.Forms.Control! -System.Windows.Forms.Control.ControlAdded -> System.Windows.Forms.ControlEventHandler +System.Windows.Forms.Control.ControlAdded -> System.Windows.Forms.ControlEventHandler? System.Windows.Forms.Control.ControlCollection System.Windows.Forms.Control.ControlCollection.Contains(System.Windows.Forms.Control? control) -> bool System.Windows.Forms.Control.ControlCollection.ControlCollection(System.Windows.Forms.Control! owner) -> void @@ -5890,7 +5890,7 @@ System.Windows.Forms.Control.ControlCollection.GetChildIndex(System.Windows.Form System.Windows.Forms.Control.ControlCollection.IndexOf(System.Windows.Forms.Control? control) -> int System.Windows.Forms.Control.ControlCollection.Owner.get -> System.Windows.Forms.Control! System.Windows.Forms.Control.ControlCollection.RemoveAt(int index) -> void -System.Windows.Forms.Control.ControlRemoved -> System.Windows.Forms.ControlEventHandler +System.Windows.Forms.Control.ControlRemoved -> System.Windows.Forms.ControlEventHandler? System.Windows.Forms.Control.Controls.get -> System.Windows.Forms.Control.ControlCollection! System.Windows.Forms.Control.CreateControl() -> void System.Windows.Forms.Control.Created.get -> bool @@ -5899,17 +5899,17 @@ System.Windows.Forms.Control.DataBindings.get -> System.Windows.Forms.ControlBin System.Windows.Forms.Control.DeviceDpi.get -> int System.Windows.Forms.Control.Disposing.get -> bool System.Windows.Forms.Control.DockChanged -> System.EventHandler? -System.Windows.Forms.Control.DoubleClick -> System.EventHandler -System.Windows.Forms.Control.DpiChangedAfterParent -> System.EventHandler -System.Windows.Forms.Control.DpiChangedBeforeParent -> System.EventHandler -System.Windows.Forms.Control.DragDrop -> System.Windows.Forms.DragEventHandler -System.Windows.Forms.Control.DragEnter -> System.Windows.Forms.DragEventHandler -System.Windows.Forms.Control.DragLeave -> System.EventHandler -System.Windows.Forms.Control.DragOver -> System.Windows.Forms.DragEventHandler +System.Windows.Forms.Control.DoubleClick -> System.EventHandler? +System.Windows.Forms.Control.DpiChangedAfterParent -> System.EventHandler? +System.Windows.Forms.Control.DpiChangedBeforeParent -> System.EventHandler? +System.Windows.Forms.Control.DragDrop -> System.Windows.Forms.DragEventHandler? +System.Windows.Forms.Control.DragEnter -> System.Windows.Forms.DragEventHandler? +System.Windows.Forms.Control.DragLeave -> System.EventHandler? +System.Windows.Forms.Control.DragOver -> System.Windows.Forms.DragEventHandler? System.Windows.Forms.Control.Enabled.get -> bool System.Windows.Forms.Control.Enabled.set -> void System.Windows.Forms.Control.EnabledChanged -> System.EventHandler? -System.Windows.Forms.Control.Enter -> System.EventHandler +System.Windows.Forms.Control.Enter -> System.EventHandler? System.Windows.Forms.Control.Focus() -> bool System.Windows.Forms.Control.FontChanged -> System.EventHandler? System.Windows.Forms.Control.FontHeight.get -> int @@ -5918,15 +5918,15 @@ System.Windows.Forms.Control.ForeColorChanged -> System.EventHandler? System.Windows.Forms.Control.GetAutoSizeMode() -> System.Windows.Forms.AutoSizeMode System.Windows.Forms.Control.GetStyle(System.Windows.Forms.ControlStyles flag) -> bool System.Windows.Forms.Control.GetTopLevel() -> bool -System.Windows.Forms.Control.GiveFeedback -> System.Windows.Forms.GiveFeedbackEventHandler -System.Windows.Forms.Control.GotFocus -> System.EventHandler +System.Windows.Forms.Control.GiveFeedback -> System.Windows.Forms.GiveFeedbackEventHandler? +System.Windows.Forms.Control.GotFocus -> System.EventHandler? System.Windows.Forms.Control.Handle.get -> System.IntPtr -System.Windows.Forms.Control.HandleCreated -> System.EventHandler -System.Windows.Forms.Control.HandleDestroyed -> System.EventHandler +System.Windows.Forms.Control.HandleCreated -> System.EventHandler? +System.Windows.Forms.Control.HandleDestroyed -> System.EventHandler? System.Windows.Forms.Control.HasChildren.get -> bool System.Windows.Forms.Control.Height.get -> int System.Windows.Forms.Control.Height.set -> void -System.Windows.Forms.Control.HelpRequested -> System.Windows.Forms.HelpEventHandler +System.Windows.Forms.Control.HelpRequested -> System.Windows.Forms.HelpEventHandler? System.Windows.Forms.Control.Hide() -> void System.Windows.Forms.Control.ImeMode.get -> System.Windows.Forms.ImeMode System.Windows.Forms.Control.ImeMode.set -> void @@ -5935,7 +5935,7 @@ System.Windows.Forms.Control.Invalidate() -> void System.Windows.Forms.Control.Invalidate(bool invalidateChildren) -> void System.Windows.Forms.Control.Invalidate(System.Drawing.Rectangle rc) -> void System.Windows.Forms.Control.Invalidate(System.Drawing.Rectangle rc, bool invalidateChildren) -> void -System.Windows.Forms.Control.Invalidated -> System.Windows.Forms.InvalidateEventHandler +System.Windows.Forms.Control.Invalidated -> System.Windows.Forms.InvalidateEventHandler? System.Windows.Forms.Control.InvokeRequired.get -> bool System.Windows.Forms.Control.IsAccessible.get -> bool System.Windows.Forms.Control.IsAccessible.set -> void @@ -5943,11 +5943,11 @@ System.Windows.Forms.Control.IsAncestorSiteInDesignMode.get -> bool System.Windows.Forms.Control.IsDisposed.get -> bool System.Windows.Forms.Control.IsHandleCreated.get -> bool System.Windows.Forms.Control.IsMirrored.get -> bool -System.Windows.Forms.Control.KeyDown -> System.Windows.Forms.KeyEventHandler -System.Windows.Forms.Control.KeyPress -> System.Windows.Forms.KeyPressEventHandler -System.Windows.Forms.Control.KeyUp -> System.Windows.Forms.KeyEventHandler -System.Windows.Forms.Control.Layout -> System.Windows.Forms.LayoutEventHandler -System.Windows.Forms.Control.Leave -> System.EventHandler +System.Windows.Forms.Control.KeyDown -> System.Windows.Forms.KeyEventHandler? +System.Windows.Forms.Control.KeyPress -> System.Windows.Forms.KeyPressEventHandler? +System.Windows.Forms.Control.KeyUp -> System.Windows.Forms.KeyEventHandler? +System.Windows.Forms.Control.Layout -> System.Windows.Forms.LayoutEventHandler? +System.Windows.Forms.Control.Leave -> System.EventHandler? System.Windows.Forms.Control.Left.get -> int System.Windows.Forms.Control.Left.set -> void System.Windows.Forms.Control.Location.get -> System.Drawing.Point @@ -5955,34 +5955,34 @@ System.Windows.Forms.Control.Location.set -> void System.Windows.Forms.Control.LocationChanged -> System.EventHandler? System.Windows.Forms.Control.LogicalToDeviceUnits(int value) -> int System.Windows.Forms.Control.LogicalToDeviceUnits(System.Drawing.Size value) -> System.Drawing.Size -System.Windows.Forms.Control.LostFocus -> System.EventHandler +System.Windows.Forms.Control.LostFocus -> System.EventHandler? System.Windows.Forms.Control.Margin.get -> System.Windows.Forms.Padding System.Windows.Forms.Control.Margin.set -> void System.Windows.Forms.Control.MarginChanged -> System.EventHandler? -System.Windows.Forms.Control.MouseCaptureChanged -> System.EventHandler -System.Windows.Forms.Control.MouseClick -> System.Windows.Forms.MouseEventHandler -System.Windows.Forms.Control.MouseDoubleClick -> System.Windows.Forms.MouseEventHandler -System.Windows.Forms.Control.MouseDown -> System.Windows.Forms.MouseEventHandler -System.Windows.Forms.Control.MouseEnter -> System.EventHandler -System.Windows.Forms.Control.MouseHover -> System.EventHandler -System.Windows.Forms.Control.MouseLeave -> System.EventHandler -System.Windows.Forms.Control.MouseMove -> System.Windows.Forms.MouseEventHandler -System.Windows.Forms.Control.MouseUp -> System.Windows.Forms.MouseEventHandler -System.Windows.Forms.Control.MouseWheel -> System.Windows.Forms.MouseEventHandler -System.Windows.Forms.Control.Move -> System.EventHandler +System.Windows.Forms.Control.MouseCaptureChanged -> System.EventHandler? +System.Windows.Forms.Control.MouseClick -> System.Windows.Forms.MouseEventHandler? +System.Windows.Forms.Control.MouseDoubleClick -> System.Windows.Forms.MouseEventHandler? +System.Windows.Forms.Control.MouseDown -> System.Windows.Forms.MouseEventHandler? +System.Windows.Forms.Control.MouseEnter -> System.EventHandler? +System.Windows.Forms.Control.MouseHover -> System.EventHandler? +System.Windows.Forms.Control.MouseLeave -> System.EventHandler? +System.Windows.Forms.Control.MouseMove -> System.Windows.Forms.MouseEventHandler? +System.Windows.Forms.Control.MouseUp -> System.Windows.Forms.MouseEventHandler? +System.Windows.Forms.Control.MouseWheel -> System.Windows.Forms.MouseEventHandler? +System.Windows.Forms.Control.Move -> System.EventHandler? System.Windows.Forms.Control.Padding.get -> System.Windows.Forms.Padding System.Windows.Forms.Control.Padding.set -> void -System.Windows.Forms.Control.PaddingChanged -> System.EventHandler -System.Windows.Forms.Control.Paint -> System.Windows.Forms.PaintEventHandler -System.Windows.Forms.Control.ParentChanged -> System.EventHandler +System.Windows.Forms.Control.PaddingChanged -> System.EventHandler? +System.Windows.Forms.Control.Paint -> System.Windows.Forms.PaintEventHandler? +System.Windows.Forms.Control.ParentChanged -> System.EventHandler? System.Windows.Forms.Control.PerformLayout() -> void System.Windows.Forms.Control.PointToClient(System.Drawing.Point p) -> System.Drawing.Point System.Windows.Forms.Control.PointToScreen(System.Drawing.Point p) -> System.Drawing.Point System.Windows.Forms.Control.PreferredSize.get -> System.Drawing.Size System.Windows.Forms.Control.PreProcessControlMessage(ref System.Windows.Forms.Message msg) -> System.Windows.Forms.PreProcessControlState -System.Windows.Forms.Control.PreviewKeyDown -> System.Windows.Forms.PreviewKeyDownEventHandler -System.Windows.Forms.Control.QueryAccessibilityHelp -> System.Windows.Forms.QueryAccessibilityHelpEventHandler -System.Windows.Forms.Control.QueryContinueDrag -> System.Windows.Forms.QueryContinueDragEventHandler +System.Windows.Forms.Control.PreviewKeyDown -> System.Windows.Forms.PreviewKeyDownEventHandler? +System.Windows.Forms.Control.QueryAccessibilityHelp -> System.Windows.Forms.QueryAccessibilityHelpEventHandler? +System.Windows.Forms.Control.QueryContinueDrag -> System.Windows.Forms.QueryContinueDragEventHandler? System.Windows.Forms.Control.RecreateHandle() -> void System.Windows.Forms.Control.RecreatingHandle.get -> bool System.Windows.Forms.Control.RectangleToClient(System.Drawing.Rectangle r) -> System.Drawing.Rectangle @@ -5992,7 +5992,7 @@ System.Windows.Forms.Control.RenderRightToLeft.get -> bool System.Windows.Forms.Control.ResetBindings() -> void System.Windows.Forms.Control.ResetImeMode() -> void System.Windows.Forms.Control.ResetMouseEventArgs() -> void -System.Windows.Forms.Control.Resize -> System.EventHandler +System.Windows.Forms.Control.Resize -> System.EventHandler? System.Windows.Forms.Control.ResizeRedraw.get -> bool System.Windows.Forms.Control.ResizeRedraw.set -> void System.Windows.Forms.Control.ResumeLayout() -> void @@ -6019,17 +6019,17 @@ System.Windows.Forms.Control.SetTopLevel(bool value) -> void System.Windows.Forms.Control.Show() -> void System.Windows.Forms.Control.Size.get -> System.Drawing.Size System.Windows.Forms.Control.Size.set -> void -System.Windows.Forms.Control.SizeChanged -> System.EventHandler -System.Windows.Forms.Control.StyleChanged -> System.EventHandler +System.Windows.Forms.Control.SizeChanged -> System.EventHandler? +System.Windows.Forms.Control.StyleChanged -> System.EventHandler? System.Windows.Forms.Control.SuspendLayout() -> void -System.Windows.Forms.Control.SystemColorsChanged -> System.EventHandler +System.Windows.Forms.Control.SystemColorsChanged -> System.EventHandler? System.Windows.Forms.Control.TabIndex.get -> int System.Windows.Forms.Control.TabIndex.set -> void -System.Windows.Forms.Control.TabIndexChanged -> System.EventHandler +System.Windows.Forms.Control.TabIndexChanged -> System.EventHandler? System.Windows.Forms.Control.TabStop.get -> bool System.Windows.Forms.Control.TabStop.set -> void -System.Windows.Forms.Control.TabStopChanged -> System.EventHandler -System.Windows.Forms.Control.TextChanged -> System.EventHandler +System.Windows.Forms.Control.TabStopChanged -> System.EventHandler? +System.Windows.Forms.Control.TextChanged -> System.EventHandler? System.Windows.Forms.Control.Top.get -> int System.Windows.Forms.Control.Top.set -> void System.Windows.Forms.Control.Update() -> void @@ -6040,11 +6040,11 @@ System.Windows.Forms.Control.UpdateStyles() -> void System.Windows.Forms.Control.UpdateZOrder() -> void System.Windows.Forms.Control.UseWaitCursor.get -> bool System.Windows.Forms.Control.UseWaitCursor.set -> void -System.Windows.Forms.Control.Validated -> System.EventHandler -System.Windows.Forms.Control.Validating -> System.ComponentModel.CancelEventHandler +System.Windows.Forms.Control.Validated -> System.EventHandler? +System.Windows.Forms.Control.Validating -> System.ComponentModel.CancelEventHandler? System.Windows.Forms.Control.Visible.get -> bool System.Windows.Forms.Control.Visible.set -> void -System.Windows.Forms.Control.VisibleChanged -> System.EventHandler +System.Windows.Forms.Control.VisibleChanged -> System.EventHandler? System.Windows.Forms.Control.Width.get -> int System.Windows.Forms.Control.Width.set -> void System.Windows.Forms.ControlBindingsCollection diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ButtonBase.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ButtonBase.cs index c43dbabbffd..c665774a9e9 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/ButtonBase.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/ButtonBase.cs @@ -4,6 +4,7 @@ using System.ComponentModel; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Drawing; using System.Drawing.Design; using System.Windows.Forms.ButtonInternal; @@ -645,6 +646,7 @@ internal bool ShowToolTip [Editor("System.ComponentModel.Design.MultilineStringEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)), SettingsBindable(true)] + [AllowNull] public override string Text { get => base.Text; diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Control.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Control.cs index 2374c05c69b..42cfba6fd73 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/Control.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/Control.cs @@ -3320,14 +3320,14 @@ public event EventHandler? RightToLeftChanged /// [EditorBrowsable(EditorBrowsableState.Advanced)] protected virtual bool ScaleChildren => true; -#nullable disable + /// /// Stores scaled font from Dpi changed values. This is required to distinguish the Font change from /// Dpi changed events and explicit Font change/assignment. Caching Font values for each Dpi is complex. /// ToDo: Look into caching Dpi and control bounds for each Dpi to improve perf. /// https://github.com/dotnet/winforms/issues/5047 /// - internal Font ScaledControlFont + internal Font? ScaledControlFont { get => _scaledControlFont; set @@ -3344,13 +3344,13 @@ internal Font ScaledControlFont } [EditorBrowsable(EditorBrowsableState.Advanced)] - public override ISite Site + public override ISite? Site { get => base.Site; set { - AmbientProperties oldAmbients = AmbientPropertiesService; - AmbientProperties newAmbients = null; + AmbientProperties? oldAmbients = AmbientPropertiesService; + AmbientProperties? newAmbients = null; if (value is not null) { @@ -3365,10 +3365,10 @@ public override ISite Site bool checkForeColor = !Properties.ContainsObject(s_foreColorProperty); bool checkCursor = !Properties.ContainsObject(s_cursorProperty); - Font oldFont = null; + Font? oldFont = null; Color oldBackColor = Color.Empty; Color oldForeColor = Color.Empty; - Cursor oldCursor = null; + Cursor? oldCursor = null; if (checkFont) { @@ -3393,7 +3393,7 @@ public override ISite Site Properties.SetObject(s_ambientPropertiesServiceProperty, newAmbients); base.Site = value; - if (checkFont && !oldFont.Equals(Font)) + if (checkFont && !oldFont!.Equals(Font)) { OnFontChanged(EventArgs.Empty); } @@ -3408,7 +3408,7 @@ public override ISite Site OnBackColorChanged(EventArgs.Empty); } - if (checkCursor && oldCursor.Equals(Cursor)) + if (checkCursor && oldCursor!.Equals(Cursor)) { OnCursorChanged(EventArgs.Empty); } @@ -3435,7 +3435,7 @@ public Size Size [SRCategory(nameof(SR.CatPropertyChanged))] [SRDescription(nameof(SR.ControlOnSizeChangedDescr))] - public event EventHandler SizeChanged + public event EventHandler? SizeChanged { add => Events.AddHandler(s_sizeEvent, value); remove => Events.RemoveHandler(s_sizeEvent, value); @@ -3468,7 +3468,7 @@ public int TabIndex [SRCategory(nameof(SR.CatPropertyChanged))] [SRDescription(nameof(SR.ControlOnTabIndexChangedDescr))] - public event EventHandler TabIndexChanged + public event EventHandler? TabIndexChanged { add => Events.AddHandler(s_tabIndexEvent, value); remove => Events.RemoveHandler(s_tabIndexEvent, value); @@ -3515,7 +3515,7 @@ internal bool TabStopInternal [SRCategory(nameof(SR.CatPropertyChanged))] [SRDescription(nameof(SR.ControlOnTabStopChangedDescr))] - public event EventHandler TabStopChanged + public event EventHandler? TabStopChanged { add => Events.AddHandler(s_tabStopEvent, value); remove => Events.RemoveHandler(s_tabStopEvent, value); @@ -3527,7 +3527,7 @@ public event EventHandler TabStopChanged [SRDescription(nameof(SR.ControlTagDescr))] [DefaultValue(null)] [TypeConverter(typeof(StringConverter))] - public object Tag + public object? Tag { get => Properties.GetObject(s_userDataProperty); set => Properties.SetObject(s_userDataProperty, value); @@ -3541,9 +3541,10 @@ public object Tag [Bindable(true)] [DispId((int)Ole32.DispatchID.TEXT)] [SRDescription(nameof(SR.ControlTextDescr))] + [AllowNull] public virtual string Text { - get => CacheTextInternal ? _text ?? "" : WindowText; + get => CacheTextInternal ? _text ?? string.Empty : WindowText; set { if (value is null) @@ -3566,9 +3567,9 @@ public virtual string Text if (IsMnemonicsListenerAxSourced) { - for (Control ctl = this; ctl is not null; ctl = ctl.ParentInternal) + for (Control? ctl = this; ctl is not null; ctl = ctl.ParentInternal) { - ActiveXImpl activeXImpl = (ActiveXImpl)ctl.Properties.GetObject(s_activeXImplProperty); + ActiveXImpl? activeXImpl = (ActiveXImpl?)ctl.Properties.GetObject(s_activeXImplProperty); if (activeXImpl is not null) { activeXImpl.UpdateAccelTable(); @@ -3581,7 +3582,7 @@ public virtual string Text [SRCategory(nameof(SR.CatPropertyChanged))] [SRDescription(nameof(SR.ControlOnTextChangedDescr))] - public event EventHandler TextChanged + public event EventHandler? TextChanged { add => Events.AddHandler(s_textEvent, value); remove => Events.RemoveHandler(s_textEvent, value); @@ -3611,13 +3612,13 @@ public int Top [EditorBrowsable(EditorBrowsableState.Advanced)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [SRDescription(nameof(SR.ControlTopLevelControlDescr))] - public Control TopLevelControl => TopLevelControlInternal; + public Control? TopLevelControl => TopLevelControlInternal; - internal Control TopLevelControlInternal + internal Control? TopLevelControlInternal { get { - Control control = this; + Control? control = this; while (control is not null && !control.GetTopLevel()) { control = control.ParentInternal; @@ -3780,7 +3781,7 @@ public bool UseWaitCursor if (GetState(States.UseWaitCursor) != value) { SetState(States.UseWaitCursor, value); - ControlCollection controlsCollection = (ControlCollection)Properties.GetObject(s_controlsCollectionProperty); + ControlCollection? controlsCollection = (ControlCollection?)Properties.GetObject(s_controlsCollectionProperty); if (controlsCollection is not null) { @@ -3841,7 +3842,7 @@ private ControlVersionInfo VersionInfo { get { - ControlVersionInfo info = (ControlVersionInfo)Properties.GetObject(s_controlVersionInfoProperty); + ControlVersionInfo? info = (ControlVersionInfo?)Properties.GetObject(s_controlVersionInfoProperty); if (info is null) { info = new ControlVersionInfo(this); @@ -3883,7 +3884,7 @@ public bool Visible /// [SRCategory(nameof(SR.CatPropertyChanged))] [SRDescription(nameof(SR.ControlOnVisibleChangedDescr))] - public event EventHandler VisibleChanged + public event EventHandler? VisibleChanged { add => Events.AddHandler(s_visibleEvent, value); remove => Events.RemoveHandler(s_visibleEvent, value); @@ -4035,7 +4036,7 @@ internal virtual string WindowText /// [SRCategory(nameof(SR.CatAction))] [SRDescription(nameof(SR.ControlOnClickDescr))] - public event EventHandler Click + public event EventHandler? Click { add => Events.AddHandler(s_clickEvent, value); remove => Events.RemoveHandler(s_clickEvent, value); @@ -4048,7 +4049,7 @@ public event EventHandler Click [Browsable(true)] [EditorBrowsable(EditorBrowsableState.Advanced)] [SRDescription(nameof(SR.ControlOnControlAddedDescr))] - public event ControlEventHandler ControlAdded + public event ControlEventHandler? ControlAdded { add => Events.AddHandler(s_controlAddedEvent, value); remove => Events.RemoveHandler(s_controlAddedEvent, value); @@ -4061,7 +4062,7 @@ public event ControlEventHandler ControlAdded [Browsable(true)] [EditorBrowsable(EditorBrowsableState.Advanced)] [SRDescription(nameof(SR.ControlOnControlRemovedDescr))] - public event ControlEventHandler ControlRemoved + public event ControlEventHandler? ControlRemoved { add => Events.AddHandler(s_controlRemovedEvent, value); remove => Events.RemoveHandler(s_controlRemovedEvent, value); @@ -4069,7 +4070,7 @@ public event ControlEventHandler ControlRemoved [SRCategory(nameof(SR.CatDragDrop))] [SRDescription(nameof(SR.ControlOnDragDropDescr))] - public event DragEventHandler DragDrop + public event DragEventHandler? DragDrop { add => Events.AddHandler(s_dragDropEvent, value); remove => Events.RemoveHandler(s_dragDropEvent, value); @@ -4077,7 +4078,7 @@ public event DragEventHandler DragDrop [SRCategory(nameof(SR.CatDragDrop))] [SRDescription(nameof(SR.ControlOnDragEnterDescr))] - public event DragEventHandler DragEnter + public event DragEventHandler? DragEnter { add => Events.AddHandler(s_dragEnterEvent, value); remove => Events.RemoveHandler(s_dragEnterEvent, value); @@ -4085,7 +4086,7 @@ public event DragEventHandler DragEnter [SRCategory(nameof(SR.CatDragDrop))] [SRDescription(nameof(SR.ControlOnDragOverDescr))] - public event DragEventHandler DragOver + public event DragEventHandler? DragOver { add => Events.AddHandler(s_dragOverEvent, value); remove => Events.RemoveHandler(s_dragOverEvent, value); @@ -4093,7 +4094,7 @@ public event DragEventHandler DragOver [SRCategory(nameof(SR.CatDragDrop))] [SRDescription(nameof(SR.ControlOnDragLeaveDescr))] - public event EventHandler DragLeave + public event EventHandler? DragLeave { add => Events.AddHandler(s_dragLeaveEvent, value); remove => Events.RemoveHandler(s_dragLeaveEvent, value); @@ -4101,7 +4102,7 @@ public event EventHandler DragLeave [SRCategory(nameof(SR.CatDragDrop))] [SRDescription(nameof(SR.ControlOnGiveFeedbackDescr))] - public event GiveFeedbackEventHandler GiveFeedback + public event GiveFeedbackEventHandler? GiveFeedback { add => Events.AddHandler(s_giveFeedbackEvent, value); remove => Events.RemoveHandler(s_giveFeedbackEvent, value); @@ -4114,7 +4115,7 @@ public event GiveFeedbackEventHandler GiveFeedback [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] [SRDescription(nameof(SR.ControlOnCreateHandleDescr))] - public event EventHandler HandleCreated + public event EventHandler? HandleCreated { add => Events.AddHandler(s_handleCreatedEvent, value); remove => Events.RemoveHandler(s_handleCreatedEvent, value); @@ -4127,7 +4128,7 @@ public event EventHandler HandleCreated [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] [SRDescription(nameof(SR.ControlOnDestroyHandleDescr))] - public event EventHandler HandleDestroyed + public event EventHandler? HandleDestroyed { add => Events.AddHandler(s_handleDestroyedEvent, value); remove => Events.RemoveHandler(s_handleDestroyedEvent, value); @@ -4135,7 +4136,7 @@ public event EventHandler HandleDestroyed [SRCategory(nameof(SR.CatBehavior))] [SRDescription(nameof(SR.ControlOnHelpDescr))] - public event HelpEventHandler HelpRequested + public event HelpEventHandler? HelpRequested { add => Events.AddHandler(s_helpRequestedEvent, value); remove => Events.RemoveHandler(s_helpRequestedEvent, value); @@ -4145,7 +4146,7 @@ public event HelpEventHandler HelpRequested [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] [SRDescription(nameof(SR.ControlOnInvalidateDescr))] - public event InvalidateEventHandler Invalidated + public event InvalidateEventHandler? Invalidated { add => Events.AddHandler(s_invalidatedEvent, value); remove => Events.RemoveHandler(s_invalidatedEvent, value); @@ -4189,7 +4190,7 @@ public Padding Padding [SRCategory(nameof(SR.CatLayout))] [SRDescription(nameof(SR.ControlOnPaddingChangedDescr))] - public event EventHandler PaddingChanged + public event EventHandler? PaddingChanged { add => Events.AddHandler(s_paddingChangedEvent, value); remove => Events.RemoveHandler(s_paddingChangedEvent, value); @@ -4197,7 +4198,7 @@ public event EventHandler PaddingChanged [SRCategory(nameof(SR.CatAppearance))] [SRDescription(nameof(SR.ControlOnPaintDescr))] - public event PaintEventHandler Paint + public event PaintEventHandler? Paint { add => Events.AddHandler(s_paintEvent, value); remove => Events.RemoveHandler(s_paintEvent, value); @@ -4205,7 +4206,7 @@ public event PaintEventHandler Paint [SRCategory(nameof(SR.CatDragDrop))] [SRDescription(nameof(SR.ControlOnQueryContinueDragDescr))] - public event QueryContinueDragEventHandler QueryContinueDrag + public event QueryContinueDragEventHandler? QueryContinueDrag { add => Events.AddHandler(s_queryContinueDragEvent, value); remove => Events.RemoveHandler(s_queryContinueDragEvent, value); @@ -4213,7 +4214,7 @@ public event QueryContinueDragEventHandler QueryContinueDrag [SRCategory(nameof(SR.CatBehavior))] [SRDescription(nameof(SR.ControlOnQueryAccessibilityHelpDescr))] - public event QueryAccessibilityHelpEventHandler QueryAccessibilityHelp + public event QueryAccessibilityHelpEventHandler? QueryAccessibilityHelp { add => Events.AddHandler(s_queryAccessibilityHelpEvent, value); remove => Events.RemoveHandler(s_queryAccessibilityHelpEvent, value); @@ -4224,7 +4225,7 @@ public event QueryAccessibilityHelpEventHandler QueryAccessibilityHelp /// [SRCategory(nameof(SR.CatAction))] [SRDescription(nameof(SR.ControlOnDoubleClickDescr))] - public event EventHandler DoubleClick + public event EventHandler? DoubleClick { add => Events.AddHandler(s_doubleClickEvent, value); remove => Events.RemoveHandler(s_doubleClickEvent, value); @@ -4235,7 +4236,7 @@ public event EventHandler DoubleClick /// [SRCategory(nameof(SR.CatFocus))] [SRDescription(nameof(SR.ControlOnEnterDescr))] - public event EventHandler Enter + public event EventHandler? Enter { add => Events.AddHandler(s_enterEvent, value); remove => Events.RemoveHandler(s_enterEvent, value); @@ -4248,7 +4249,7 @@ public event EventHandler Enter [SRDescription(nameof(SR.ControlOnGotFocusDescr))] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] - public event EventHandler GotFocus + public event EventHandler? GotFocus { add => Events.AddHandler(s_gotFocusEvent, value); remove => Events.RemoveHandler(s_gotFocusEvent, value); @@ -4259,7 +4260,7 @@ public event EventHandler GotFocus /// [SRCategory(nameof(SR.CatKey))] [SRDescription(nameof(SR.ControlOnKeyDownDescr))] - public event KeyEventHandler KeyDown + public event KeyEventHandler? KeyDown { add => Events.AddHandler(s_keyDownEvent, value); remove => Events.RemoveHandler(s_keyDownEvent, value); @@ -4270,7 +4271,7 @@ public event KeyEventHandler KeyDown /// [SRCategory(nameof(SR.CatKey))] [SRDescription(nameof(SR.ControlOnKeyPressDescr))] - public event KeyPressEventHandler KeyPress + public event KeyPressEventHandler? KeyPress { add => Events.AddHandler(s_keyPressEvent, value); remove => Events.RemoveHandler(s_keyPressEvent, value); @@ -4281,7 +4282,7 @@ public event KeyPressEventHandler KeyPress /// [SRCategory(nameof(SR.CatKey))] [SRDescription(nameof(SR.ControlOnKeyUpDescr))] - public event KeyEventHandler KeyUp + public event KeyEventHandler? KeyUp { add => Events.AddHandler(s_keyUpEvent, value); remove => Events.RemoveHandler(s_keyUpEvent, value); @@ -4289,7 +4290,7 @@ public event KeyEventHandler KeyUp [SRCategory(nameof(SR.CatLayout))] [SRDescription(nameof(SR.ControlOnLayoutDescr))] - public event LayoutEventHandler Layout + public event LayoutEventHandler? Layout { add => Events.AddHandler(s_layoutEvent, value); remove => Events.RemoveHandler(s_layoutEvent, value); @@ -4300,7 +4301,7 @@ public event LayoutEventHandler Layout /// [SRCategory(nameof(SR.CatFocus))] [SRDescription(nameof(SR.ControlOnLeaveDescr))] - public event EventHandler Leave + public event EventHandler? Leave { add => Events.AddHandler(s_leaveEvent, value); remove => Events.RemoveHandler(s_leaveEvent, value); @@ -4313,7 +4314,7 @@ public event EventHandler Leave [SRDescription(nameof(SR.ControlOnLostFocusDescr))] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] - public event EventHandler LostFocus + public event EventHandler? LostFocus { add => Events.AddHandler(s_lostFocusEvent, value); remove => Events.RemoveHandler(s_lostFocusEvent, value); @@ -4324,7 +4325,7 @@ public event EventHandler LostFocus /// [SRCategory(nameof(SR.CatAction))] [SRDescription(nameof(SR.ControlOnMouseClickDescr))] - public event MouseEventHandler MouseClick + public event MouseEventHandler? MouseClick { add => Events.AddHandler(s_mouseClickEvent, value); remove => Events.RemoveHandler(s_mouseClickEvent, value); @@ -4335,7 +4336,7 @@ public event MouseEventHandler MouseClick /// [SRCategory(nameof(SR.CatAction))] [SRDescription(nameof(SR.ControlOnMouseDoubleClickDescr))] - public event MouseEventHandler MouseDoubleClick + public event MouseEventHandler? MouseDoubleClick { add => Events.AddHandler(s_mouseDoubleClickEvent, value); remove => Events.RemoveHandler(s_mouseDoubleClickEvent, value); @@ -4346,7 +4347,7 @@ public event MouseEventHandler MouseDoubleClick /// [SRCategory(nameof(SR.CatAction))] [SRDescription(nameof(SR.ControlOnMouseCaptureChangedDescr))] - public event EventHandler MouseCaptureChanged + public event EventHandler? MouseCaptureChanged { add => Events.AddHandler(s_mouseCaptureChangedEvent, value); remove => Events.RemoveHandler(s_mouseCaptureChangedEvent, value); @@ -4358,7 +4359,7 @@ public event EventHandler MouseCaptureChanged /// [SRCategory(nameof(SR.CatMouse))] [SRDescription(nameof(SR.ControlOnMouseDownDescr))] - public event MouseEventHandler MouseDown + public event MouseEventHandler? MouseDown { add => Events.AddHandler(s_mouseDownEvent, value); remove => Events.RemoveHandler(s_mouseDownEvent, value); @@ -4369,7 +4370,7 @@ public event MouseEventHandler MouseDown /// [SRCategory(nameof(SR.CatMouse))] [SRDescription(nameof(SR.ControlOnMouseEnterDescr))] - public event EventHandler MouseEnter + public event EventHandler? MouseEnter { add => Events.AddHandler(s_mouseEnterEvent, value); remove => Events.RemoveHandler(s_mouseEnterEvent, value); @@ -4380,7 +4381,7 @@ public event EventHandler MouseEnter /// [SRCategory(nameof(SR.CatMouse))] [SRDescription(nameof(SR.ControlOnMouseLeaveDescr))] - public event EventHandler MouseLeave + public event EventHandler? MouseLeave { add => Events.AddHandler(s_mouseLeaveEvent, value); remove => Events.RemoveHandler(s_mouseLeaveEvent, value); @@ -4393,7 +4394,7 @@ public event EventHandler MouseLeave /// [SRCategory(nameof(SR.CatLayout))] [SRDescription(nameof(SR.ControlOnDpiChangedBeforeParentDescr))] - public event EventHandler DpiChangedBeforeParent + public event EventHandler? DpiChangedBeforeParent { add => Events.AddHandler(s_dpiChangedBeforeParentEvent, value); remove => Events.RemoveHandler(s_dpiChangedBeforeParentEvent, value); @@ -4406,7 +4407,7 @@ public event EventHandler DpiChangedBeforeParent /// [SRCategory(nameof(SR.CatLayout))] [SRDescription(nameof(SR.ControlOnDpiChangedAfterParentDescr))] - public event EventHandler DpiChangedAfterParent + public event EventHandler? DpiChangedAfterParent { add => Events.AddHandler(s_dpiChangedAfterParentEvent, value); remove => Events.RemoveHandler(s_dpiChangedAfterParentEvent, value); @@ -4417,7 +4418,7 @@ public event EventHandler DpiChangedAfterParent /// [SRCategory(nameof(SR.CatMouse))] [SRDescription(nameof(SR.ControlOnMouseHoverDescr))] - public event EventHandler MouseHover + public event EventHandler? MouseHover { add => Events.AddHandler(s_mouseHoverEvent, value); remove => Events.RemoveHandler(s_mouseHoverEvent, value); @@ -4428,7 +4429,7 @@ public event EventHandler MouseHover /// [SRCategory(nameof(SR.CatMouse))] [SRDescription(nameof(SR.ControlOnMouseMoveDescr))] - public event MouseEventHandler MouseMove + public event MouseEventHandler? MouseMove { add => Events.AddHandler(s_mouseMoveEvent, value); remove => Events.RemoveHandler(s_mouseMoveEvent, value); @@ -4439,7 +4440,7 @@ public event MouseEventHandler MouseMove /// [SRCategory(nameof(SR.CatMouse))] [SRDescription(nameof(SR.ControlOnMouseUpDescr))] - public event MouseEventHandler MouseUp + public event MouseEventHandler? MouseUp { add => Events.AddHandler(s_mouseUpEvent, value); remove => Events.RemoveHandler(s_mouseUpEvent, value); @@ -4452,7 +4453,7 @@ public event MouseEventHandler MouseUp [SRDescription(nameof(SR.ControlOnMouseWheelDescr))] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] - public event MouseEventHandler MouseWheel + public event MouseEventHandler? MouseWheel { add => Events.AddHandler(s_mouseWheelEvent, value); remove => Events.RemoveHandler(s_mouseWheelEvent, value); @@ -4463,7 +4464,7 @@ public event MouseEventHandler MouseWheel /// [SRCategory(nameof(SR.CatLayout))] [SRDescription(nameof(SR.ControlOnMoveDescr))] - public event EventHandler Move + public event EventHandler? Move { add => Events.AddHandler(s_moveEvent, value); remove => Events.RemoveHandler(s_moveEvent, value); @@ -4474,7 +4475,7 @@ public event EventHandler Move /// [SRCategory(nameof(SR.CatKey))] [SRDescription(nameof(SR.PreviewKeyDownDescr))] - public event PreviewKeyDownEventHandler PreviewKeyDown + public event PreviewKeyDownEventHandler? PreviewKeyDown { add => Events.AddHandler(s_previewKeyDownEvent, value); remove => Events.RemoveHandler(s_previewKeyDownEvent, value); @@ -4486,7 +4487,7 @@ public event PreviewKeyDownEventHandler PreviewKeyDown [SRCategory(nameof(SR.CatLayout))] [SRDescription(nameof(SR.ControlOnResizeDescr))] [EditorBrowsable(EditorBrowsableState.Advanced)] - public event EventHandler Resize + public event EventHandler? Resize { add => Events.AddHandler(s_resizeEvent, value); remove => Events.RemoveHandler(s_resizeEvent, value); @@ -4494,7 +4495,7 @@ public event EventHandler Resize [SRCategory(nameof(SR.CatBehavior))] [SRDescription(nameof(SR.ControlOnChangeUICuesDescr))] - public event UICuesEventHandler ChangeUICues + public event UICuesEventHandler? ChangeUICues { add => Events.AddHandler(s_changeUICuesEvent, value); remove => Events.RemoveHandler(s_changeUICuesEvent, value); @@ -4502,7 +4503,7 @@ public event UICuesEventHandler ChangeUICues [SRCategory(nameof(SR.CatBehavior))] [SRDescription(nameof(SR.ControlOnStyleChangedDescr))] - public event EventHandler StyleChanged + public event EventHandler? StyleChanged { add => Events.AddHandler(s_styleChangedEvent, value); remove => Events.RemoveHandler(s_styleChangedEvent, value); @@ -4510,7 +4511,7 @@ public event EventHandler StyleChanged [SRCategory(nameof(SR.CatBehavior))] [SRDescription(nameof(SR.ControlOnSystemColorsChangedDescr))] - public event EventHandler SystemColorsChanged + public event EventHandler? SystemColorsChanged { add => Events.AddHandler(s_systemColorsChangedEvent, value); remove => Events.RemoveHandler(s_systemColorsChangedEvent, value); @@ -4521,7 +4522,7 @@ public event EventHandler SystemColorsChanged /// [SRCategory(nameof(SR.CatFocus))] [SRDescription(nameof(SR.ControlOnValidatingDescr))] - public event CancelEventHandler Validating + public event CancelEventHandler? Validating { add => Events.AddHandler(s_validatingEvent, value); remove => Events.RemoveHandler(s_validatingEvent, value); @@ -4532,7 +4533,7 @@ public event CancelEventHandler Validating /// [SRCategory(nameof(SR.CatFocus))] [SRDescription(nameof(SR.ControlOnValidatedDescr))] - public event EventHandler Validated + public event EventHandler? Validated { add => Events.AddHandler(s_validatedEvent, value); remove => Events.RemoveHandler(s_validatedEvent, value); @@ -4593,7 +4594,7 @@ private void ActiveXUpdateBounds(ref int x, ref int y, ref int width, ref int he /// Assigns a new parent control. Sends out the appropriate property change /// notifications for properties that are affected by the change of parent. /// - internal virtual void AssignParent(Control value) + internal virtual void AssignParent(Control? value) { // Adopt the parent's required scaling bits if (value is not null) @@ -4662,7 +4663,6 @@ internal virtual void AssignParent(Control value) // and invoking the property would just create the binding manager, which // we don't need. We just blindly notify that the binding manager has // changed, and if anyone cares, they will do the comparison at that time. - // OnBindingContextChanged(EventArgs.Empty); } } @@ -4681,7 +4681,7 @@ internal virtual void AssignParent(Control value) [SRCategory(nameof(SR.CatPropertyChanged))] [SRDescription(nameof(SR.ControlOnParentChangedDescr))] - public event EventHandler ParentChanged + public event EventHandler? ParentChanged { add => Events.AddHandler(s_parentEvent, value); remove => Events.RemoveHandler(s_parentEvent, value); @@ -4706,7 +4706,7 @@ public event EventHandler ParentChanged /// [EditorBrowsable(EditorBrowsableState.Advanced)] public IAsyncResult BeginInvoke(Action method) => BeginInvoke(method, null); - +#nullable disable /// /// Executes the given delegate on the thread that owns this Control's /// underlying window handle. The delegate is called asynchronously and this @@ -13428,7 +13428,7 @@ PropertyStore IArrangedElement.Properties // CAREFUL: This really calls SetBoundsCore, not SetBounds. void IArrangedElement.SetBounds(Rectangle bounds, BoundsSpecified specified) { - ISite site = Site; + ISite? site = Site; IComponentChangeService? changeService = null; PropertyDescriptor? sizeProperty = null; PropertyDescriptor? locationProperty = null; @@ -14271,7 +14271,7 @@ bool IKeyboardToolTip.CanShowToolTipsNow() bool IKeyboardToolTip.HasRtlModeEnabled() { - Control topLevelControl = TopLevelControlInternal; + Control? topLevelControl = TopLevelControlInternal; return topLevelControl is not null && topLevelControl.RightToLeft == RightToLeft.Yes && !IsMirrored; } diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Form.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Form.cs index e5d0ab0c1cf..84cd32538f7 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/Form.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/Form.cs @@ -2960,7 +2960,7 @@ private void ApplyClientSize() /// Assigns a new parent control. Sends out the appropriate property change /// notifications for properties that are affected by the change of parent. /// - internal override void AssignParent(Control value) + internal override void AssignParent(Control? value) { // If we are being unparented from the MDI client control, remove // formMDIParent as well. diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/GroupBox.cs b/src/System.Windows.Forms/src/System/Windows/Forms/GroupBox.cs index 02112465270..5463060d342 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/GroupBox.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/GroupBox.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; using System.Drawing; using System.Drawing.Text; using System.Windows.Forms.Layout; @@ -240,6 +241,7 @@ public FlatStyle FlatStyle } [Localizable(true)] + [AllowNull] public override string Text { get => base.Text; diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ListBox.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ListBox.cs index ec571e83e65..5920343b29b 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/ListBox.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/ListBox.cs @@ -1088,7 +1088,8 @@ public bool Sorted [EditorBrowsable(EditorBrowsableState.Advanced)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] [Bindable(false)] - public override string? Text + [AllowNull] + public override string Text { get { @@ -1096,11 +1097,11 @@ public override string? Text { if (FormattingEnabled) { - return GetItemText(SelectedItem); + return GetItemText(SelectedItem) ?? string.Empty; } else { - return FilterItemOnProperty(SelectedItem)?.ToString(); + return FilterItemOnProperty(SelectedItem)?.ToString() ?? string.Empty; } } else diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ListView.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ListView.cs index 29f3fccbb2d..6de0e46fd5b 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/ListView.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/ListView.cs @@ -6,6 +6,7 @@ using System.ComponentModel; using System.ComponentModel.Design; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Drawing; using System.Drawing.Design; using System.Globalization; @@ -1649,6 +1650,7 @@ public ImageList? StateImageList [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] [Bindable(false)] + [AllowNull] public override string Text { get => base.Text; @@ -6131,7 +6133,7 @@ private unsafe bool WmNotify(ref Message m) _columnHeaderClicked = null; _columnHeaderClickedWidth = -1; - ISite site = Site; + ISite? site = Site; if (site is not null) { diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/Printing/PrintPreviewControl.cs b/src/System.Windows.Forms/src/System/Windows/Forms/Printing/PrintPreviewControl.cs index 74d4f9595fa..47426c0fa3a 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/Printing/PrintPreviewControl.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/Printing/PrintPreviewControl.cs @@ -4,6 +4,7 @@ using System.ComponentModel; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.Drawing; using System.Drawing.Printing; using static Interop; @@ -208,6 +209,7 @@ public override RightToLeft RightToLeft [EditorBrowsable(EditorBrowsableState.Never)] [Bindable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [AllowNull] public override string Text { get => base.Text; diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ProgressBar.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ProgressBar.cs index 7e5c4abb204..a83df4509c8 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/ProgressBar.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/ProgressBar.cs @@ -435,6 +435,7 @@ public int Step [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] [Bindable(false)] + [AllowNull] public override string Text { get => base.Text; diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ScrollBar.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ScrollBar.cs index 5ec74a6113a..32689f41e19 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/ScrollBar.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/ScrollBar.cs @@ -327,6 +327,7 @@ public int SmallChange [EditorBrowsable(EditorBrowsableState.Never)] [Bindable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [AllowNull] public override string Text { get => base.Text; diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/TabPage.cs b/src/System.Windows.Forms/src/System/Windows/Forms/TabPage.cs index 7aaca785a4d..95ce7907976 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/TabPage.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/TabPage.cs @@ -481,9 +481,9 @@ public string ToolTipText /// Assigns a new parent control. Sends out the appropriate property change notifications for /// properties that are affected by the change of parent. /// - internal override void AssignParent(Control value) + internal override void AssignParent(Control? value) { - if (value is not null && !(value is TabControl)) + if (value is not null && value is not TabControl) { throw new ArgumentException(string.Format(SR.TabControlTabPageNotOnTabControl, value.GetType().FullName)); } diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/TrackBar.cs b/src/System.Windows.Forms/src/System/Windows/Forms/TrackBar.cs index 9d30c0c3391..51912b374f8 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/TrackBar.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/TrackBar.cs @@ -492,6 +492,7 @@ public int SmallChange [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] [Bindable(false)] + [AllowNull] public override string Text { get => base.Text; diff --git a/src/System.Windows.Forms/tests/IntegrationTests/UIIntegrationTests/DesignBehaviorsTests.cs b/src/System.Windows.Forms/tests/IntegrationTests/UIIntegrationTests/DesignBehaviorsTests.cs index e1ee700d63d..162d4cdd7fd 100644 --- a/src/System.Windows.Forms/tests/IntegrationTests/UIIntegrationTests/DesignBehaviorsTests.cs +++ b/src/System.Windows.Forms/tests/IntegrationTests/UIIntegrationTests/DesignBehaviorsTests.cs @@ -331,7 +331,7 @@ protected override void OnPaintAdornments(PaintEventArgs pe) { base.OnPaintAdornments(pe); - pe.Graphics.DrawString($"Design time \n{Control.Site.Name} !", Control.Font, SystemBrushes.WindowText, new PointF(12, 12)); + pe.Graphics.DrawString($"Design time \n{Control.Site?.Name} !", Control.Font, SystemBrushes.WindowText, new PointF(12, 12)); } } }