dotnet-api-diff

System.Windows.Forms

 namespace System.Windows.Forms {
     public class AccessibleObject : StandardOleMarshalObject, IAccessible, Interop.Ole32.IOleWindow, Interop.Ole32.IServiceProvider, Interop.Oleaut32.IEnumVariant, Interop.UiaCore.IAccessibleEx, Interop.UiaCore.IExpandCollapseProvider, Interop.UiaCore.IGridItemProvider, Interop.UiaCore.IGridProvider, Interop.UiaCore.IInvokeProvider, Interop.UiaCore.ILegacyIAccessibleProvider, Interop.UiaCore.IMultipleViewProvider, Interop.UiaCore.IRangeValueProvider, Interop.UiaCore.IRawElementProviderFragment, Interop.UiaCore.IRawElementProviderFragmentRoot, Interop.UiaCore.IRawElementProviderHwndOverride, Interop.UiaCore.IRawElementProviderSimple, Interop.UiaCore.IScrollItemProvider, Interop.UiaCore.ISelectionItemProvider, Interop.UiaCore.ISelectionProvider, Interop.UiaCore.ITableItemProvider, Interop.UiaCore.ITableProvider, Interop.UiaCore.ITextProvider, Interop.UiaCore.ITextProvider2, Interop.UiaCore.IToggleProvider, Interop.UiaCore.IValueProvider, IReflect {
         FieldInfo? IReflect.GetField(string name, BindingFlags bindingAttr);
         FieldInfo[] IReflect.GetFields(BindingFlags bindingAttr);
         MemberInfo[] IReflect.GetMember(string name, BindingFlags bindingAttr);
         MemberInfo[] IReflect.GetMembers(BindingFlags bindingAttr);
         MethodInfo? IReflect.GetMethod(string name, BindingFlags bindingAttr);
         MethodInfo IReflect.GetMethod(string name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
         MethodInfo[] IReflect.GetMethods(BindingFlags bindingAttr);
         PropertyInfo[] IReflect.GetProperties(BindingFlags bindingAttr);
         PropertyInfo? IReflect.GetProperty(string name, BindingFlags bindingAttr);
         PropertyInfo IReflect.GetProperty(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers);
         object IReflect.InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[]? namedParameters);
     }
     public abstract class AxHost : Control, ICustomTypeDescriptor, ISupportInitialize {
         TypeConverter ICustomTypeDescriptor.GetConverter();
         EventDescriptor ICustomTypeDescriptor.GetDefaultEvent();
         PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty();
         object ICustomTypeDescriptor.GetEditor(Type editorBaseType);
         EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] attributes);
         PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties();
         PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes);
         public class AxComponentEditor : WindowsFormsComponentEditor {
-            public override bool EditComponent(ITypeDescriptorContext context, object obj, IWin32Window parent);
+            public override bool EditComponent(ITypeDescriptorContext? context, object obj, IWin32Window? parent);
         }
         public sealed class ClsidAttribute : Attribute {
             public string Value { get; }
         }
         public class State : ISerializable {
-            public State(Stream ms, int storageType, bool manualUpdate, string licKey);
+            public State(Stream ms, int storageType, bool manualUpdate, string? licKey);
         }
         public class StateConverter : TypeConverter {
-            public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+            public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
         }
         public sealed class TypeLibraryTimeStampAttribute : Attribute {
             public DateTime Value { get; }
         }
     }
+    public abstract class BindableComponent : Component, IBindableComponent, IComponent, IDisposable {
+        protected BindableComponent();
+        public BindingContext? BindingContext { get; set; }
+        public ControlBindingsCollection DataBindings { get; }
+        public event EventHandler BindingContextChanged;
+        protected virtual void OnBindingContextChanged(EventArgs e);
+    }
     public abstract class BindingManagerBase {
-        protected EventHandler onCurrentChangedHandler;
+        protected EventHandler? onCurrentChangedHandler;
-        protected EventHandler onPositionChangedHandler;
+        protected EventHandler? onPositionChangedHandler;
-        protected internal virtual PropertyDescriptorCollection GetItemProperties(ArrayList dataSources, ArrayList listAccessors);
+        protected internal virtual PropertyDescriptorCollection? GetItemProperties(ArrayList dataSources, ArrayList listAccessors);
-        protected virtual PropertyDescriptorCollection GetItemProperties(Type listType, int offset, ArrayList dataSources, ArrayList listAccessors);
+        protected virtual PropertyDescriptorCollection? GetItemProperties(Type listType, int offset, ArrayList dataSources, ArrayList listAccessors);
-        protected internal abstract string GetListName(ArrayList listAccessors);
+        protected internal abstract string GetListName(ArrayList? listAccessors);
     }
-    public struct BindingMemberInfo {
+    public struct BindingMemberInfo : IEquatable<BindingMemberInfo> {
+        public bool Equals(BindingMemberInfo other);
     }
     public class BindingSource : Component, IBindingList, IBindingListView, ICancelAddNew, ICollection, ICurrencyManagerProvider, IEnumerable, IList, ISupportInitialize, ISupportInitializeNotification, ITypedList {
         public virtual string Filter { get; set; }
     }
     public class Button : ButtonBase, IButtonControl {
-        public new event EventHandler DoubleClick;
+        public new event EventHandler? DoubleClick;
-        public new event MouseEventHandler MouseDoubleClick;
+        public new event MouseEventHandler? MouseDoubleClick;
     }
     public abstract class ButtonBase : Control {
+        public ICommand? Command { get; set; }
+        public object? CommandParameter { get; set; }
-        public Image Image { get; set; }
+        public Image? Image { get; set; }
-        public ImageList ImageList { get; set; }
+        public ImageList? ImageList { get; set; }
         public override string Text { get; set; }
-        public new event EventHandler AutoSizeChanged;
+        public new event EventHandler? AutoSizeChanged;
+        public event EventHandler? CommandCanExecuteChanged;
+        public event EventHandler? CommandChanged;
+        public event EventHandler? CommandParameterChanged;
-        public new event EventHandler ImeModeChanged;
+        public new event EventHandler? ImeModeChanged;
+        protected override void OnClick(EventArgs e);
+        protected virtual void OnCommandCanExecuteChanged(EventArgs e);
+        protected virtual void OnCommandChanged(EventArgs e);
+        protected virtual void OnCommandParameterChanged(EventArgs e);
+        protected virtual void OnRequestCommandExecute(EventArgs e);
     }
     public static class ButtonRenderer {
-        public static void DrawButton(Graphics g, Rectangle bounds, string buttonText, Font font, bool focused, PushButtonState state);
+        public static void DrawButton(Graphics g, Rectangle bounds, string? buttonText, Font? font, bool focused, PushButtonState state);
-        public static void DrawButton(Graphics g, Rectangle bounds, string buttonText, Font font, Image image, Rectangle imageBounds, bool focused, PushButtonState state);
+        public static void DrawButton(Graphics g, Rectangle bounds, string? buttonText, Font? font, Image image, Rectangle imageBounds, bool focused, PushButtonState state);
-        public static void DrawButton(Graphics g, Rectangle bounds, string buttonText, Font font, TextFormatFlags flags, bool focused, PushButtonState state);
+        public static void DrawButton(Graphics g, Rectangle bounds, string? buttonText, Font? font, TextFormatFlags flags, bool focused, PushButtonState state);
-        public static void DrawButton(Graphics g, Rectangle bounds, string buttonText, Font font, TextFormatFlags flags, Image image, Rectangle imageBounds, bool focused, PushButtonState state);
+        public static void DrawButton(Graphics g, Rectangle bounds, string? buttonText, Font? font, TextFormatFlags flags, Image image, Rectangle imageBounds, bool focused, PushButtonState state);
     }
     public class CheckBox : ButtonBase {
-        public event EventHandler AppearanceChanged;
+        public event EventHandler? AppearanceChanged;
-        public event EventHandler CheckedChanged;
+        public event EventHandler? CheckedChanged;
-        public event EventHandler CheckStateChanged;
+        public event EventHandler? CheckStateChanged;
-        public new event EventHandler DoubleClick;
+        public new event EventHandler? DoubleClick;
-        public new event MouseEventHandler MouseDoubleClick;
+        public new event MouseEventHandler? MouseDoubleClick;
     }
     public static class CheckBoxRenderer {
-        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string checkBoxText, Font font, bool focused, CheckBoxState state);
+        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string? checkBoxText, Font? font, bool focused, CheckBoxState state);
-        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string checkBoxText, Font font, Image image, Rectangle imageBounds, bool focused, CheckBoxState state);
+        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string? checkBoxText, Font? font, Image image, Rectangle imageBounds, bool focused, CheckBoxState state);
-        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string checkBoxText, Font font, TextFormatFlags flags, bool focused, CheckBoxState state);
+        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string? checkBoxText, Font? font, TextFormatFlags flags, bool focused, CheckBoxState state);
-        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string checkBoxText, Font font, TextFormatFlags flags, Image image, Rectangle imageBounds, bool focused, CheckBoxState state);
+        public static void DrawCheckBox(Graphics g, Point glyphLocation, Rectangle textBounds, string? checkBoxText, Font? font, TextFormatFlags flags, Image image, Rectangle imageBounds, bool focused, CheckBoxState state);
     }
     public class CheckedListBox : ListBox {
-        public new object DataSource { get; set; }
+        public new object? DataSource { get; set; }
-        public new event EventHandler Click;
+        public new event EventHandler? Click;
-        public new event EventHandler DataSourceChanged;
+        public new event EventHandler? DataSourceChanged;
-        public new event EventHandler DisplayMemberChanged;
+        public new event EventHandler? DisplayMemberChanged;
-        public new event DrawItemEventHandler DrawItem;
+        public new event DrawItemEventHandler? DrawItem;
-        public event ItemCheckEventHandler ItemCheck;
+        public event ItemCheckEventHandler? ItemCheck;
-        public new event MeasureItemEventHandler MeasureItem;
+        public new event MeasureItemEventHandler? MeasureItem;
-        public new event MouseEventHandler MouseClick;
+        public new event MouseEventHandler? MouseClick;
-        public new event EventHandler ValueMemberChanged;
+        public new event EventHandler? ValueMemberChanged;
         public class CheckedIndexCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object? IList.this[int index] { get; set; }
-            int IList.Add(object value);
+            int IList.Add(object? value);
-            bool IList.Contains(object index);
+            bool IList.Contains(object? index);
-            int IList.IndexOf(object index);
+            int IList.IndexOf(object? index);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
         public class CheckedItemCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            public object this[int index] { get; set; }
+            public object? this[int index] { get; set; }
-            public bool Contains(object item);
+            public bool Contains(object? item);
-            public int IndexOf(object item);
+            public int IndexOf(object? item);
-            int IList.Add(object value);
+            int IList.Add(object? value);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
     }
     public static class Clipboard {
-        public static bool ContainsData(string format);
+        public static bool ContainsData(string? format);
-        public static Stream GetAudioStream();
+        public static Stream? GetAudioStream();
-        public static object GetData(string format);
+        public static object? GetData(string format);
-        public static IDataObject GetDataObject();
+        public static IDataObject? GetDataObject();
-        public static Image GetImage();
+        public static Image? GetImage();
     }
     public class ColorDialog : CommonDialog {
         public int[] CustomColors { get; set; }
     }
     public class ColumnHeader : Component, ICloneable {
         public string Text { get; set; }
     }
     public class ComboBox : ListControl {
         public class ChildAccessibleObject : AccessibleObject {
-            public override string Name { get; }
+            public override string? Name { get; }
         }
     }
     public static class ComboBoxRenderer {
-        public static void DrawTextBox(Graphics g, Rectangle bounds, string comboBoxText, Font font, Rectangle textBounds, TextFormatFlags flags, ComboBoxState state);
+        public static void DrawTextBox(Graphics g, Rectangle bounds, string? comboBoxText, Font? font, Rectangle textBounds, TextFormatFlags flags, ComboBoxState state);
-        public static void DrawTextBox(Graphics g, Rectangle bounds, string comboBoxText, Font font, Rectangle textBounds, ComboBoxState state);
+        public static void DrawTextBox(Graphics g, Rectangle bounds, string? comboBoxText, Font? font, Rectangle textBounds, ComboBoxState state);
-        public static void DrawTextBox(Graphics g, Rectangle bounds, string comboBoxText, Font font, TextFormatFlags flags, ComboBoxState state);
+        public static void DrawTextBox(Graphics g, Rectangle bounds, string? comboBoxText, Font? font, TextFormatFlags flags, ComboBoxState state);
-        public static void DrawTextBox(Graphics g, Rectangle bounds, string comboBoxText, Font font, ComboBoxState state);
+        public static void DrawTextBox(Graphics g, Rectangle bounds, string? comboBoxText, Font? font, ComboBoxState state);
     }
     public class ContainerControl : ScrollableControl, IContainerControl {
-        public Control ActiveControl { get; set; }
+        public Control? ActiveControl { get; set; }
-        public override BindingContext BindingContext { get; set; }
+        public override BindingContext? BindingContext { get; set; }
-        public Form ParentForm { get; }
+        public Form? ParentForm { get; }
-        public event EventHandler AutoValidateChanged;
+        public event EventHandler? AutoValidateChanged;
+        protected override void OnMove(EventArgs e);
+        protected override void OnResize(EventArgs e);
+        protected virtual void ScaleMinMaxSize(float xScaleFactor, float yScaleFactor, bool updateContainerSize = true);
     }
     public class ContextMenuStrip : ToolStripDropDownMenu {
-        public Control SourceControl { get; }
+        public Control? SourceControl { get; }
     }
     public class Control : Component, IArrangedElement, IBindableComponent, IComponent, IDisposable, IDropTarget, IHandle, IKeyboardToolTip, Interop.Ole32.IOleControl, Interop.Ole32.IOleInPlaceActiveObject, Interop.Ole32.IOleInPlaceObject, Interop.Ole32.IOleObject, Interop.Ole32.IOleWindow, Interop.Ole32.IPersist, Interop.Ole32.IPersistStorage, Interop.Ole32.IPersistStreamInit, Interop.Ole32.IQuickActivate, Interop.Ole32.IViewObject, Interop.Ole32.IViewObject2, Interop.Oleaut32.IPersistPropertyBag, ISupportOleDropSource, ISynchronizeInvoke, IWin32Window {
         public virtual Cursor Cursor { get; set; }
+        public virtual object DataContext { get; set; }
         public virtual Font Font { get; set; }
         public string Name { get; set; }
         public virtual string Text { get; set; }
+        public event EventHandler DataContextChanged;
-        public IAsyncResult BeginInvoke(Delegate method, params object[] args);
+        public IAsyncResult BeginInvoke(Delegate method, params object?[]? args);
+        public DragDropEffects DoDragDrop(object data, DragDropEffects allowedEffects, Bitmap? dragImage, Point cursorOffset, bool useDefaultDragImage);
-        public object EndInvoke(IAsyncResult asyncResult);
+        public object? EndInvoke(IAsyncResult asyncResult);
-        public object Invoke(Delegate method, params object[] args);
+        public object Invoke(Delegate method, params object?[]? args);
+        protected virtual void OnDataContextChanged(EventArgs e);
+        protected virtual void OnParentDataContextChanged(EventArgs e);
         public class ControlCollection : ArrangedElementCollection, ICloneable, ICollection, IEnumerable, IList {
-            public virtual Control this[string key] { get; }
+            public virtual Control? this[string? key] { get; }
-            public virtual void Add(Control value);
+            public virtual void Add(Control? value);
-            public bool Contains(Control control);
+            public bool Contains(Control? control);
-            public virtual bool ContainsKey(string key);
+            public virtual bool ContainsKey(string? key);
-            public int IndexOf(Control control);
+            public int IndexOf(Control? control);
-            public virtual int IndexOfKey(string key);
+            public virtual int IndexOfKey(string? key);
-            public virtual void Remove(Control value);
+            public virtual void Remove(Control? value);
-            public virtual void RemoveByKey(string key);
+            public virtual void RemoveByKey(string? key);
-            int IList.Add(object control);
+            int IList.Add(object? control);
-            void IList.Remove(object control);
+            void IList.Remove(object? control);
         }
     }
     public sealed class Cursor : IDisposable, IHandle, ISerializable {
-        public static Cursor? Current { get; set; }
+        public static Cursor Current { get; set; }
-        public object? Tag { get; set; }
+        public object Tag { get; set; }
-        public override bool Equals(object? obj);
+        public override bool Equals(object obj);
     }
     public class CursorConverter : TypeConverter {
-        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+        public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
-        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context);
+        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext? context);
     }
     public class DataGridView : Control, ISupportInitialize {
         protected class DataGridViewTopRowAccessibleObject : AccessibleObject {
-            public DataGridView Owner { get; set; }
+            public DataGridView? Owner { get; set; }
-            public override AccessibleObject GetChild(int index);
+            public override AccessibleObject? GetChild(int index);
-            public override AccessibleObject Navigate(AccessibleNavigation navigationDirection);
+            public override AccessibleObject? Navigate(AccessibleNavigation navigationDirection);
         }
     }
     public sealed class DataGridViewAdvancedBorderStyle : ICloneable {
-        public override bool Equals(object other);
+        public override bool Equals(object? other);
     }
     public class DataGridViewBand : DataGridViewElement, ICloneable, IDisposable
     public class DataGridViewButtonCell : DataGridViewCell {
         public override Type EditType { get; }
     }
     public class DataGridViewButtonColumn : DataGridViewColumn
     public abstract class DataGridViewCell : DataGridViewElement, ICloneable, IDisposable, IKeyboardToolTip {
         public virtual Type EditType { get; }
     }
     public class DataGridViewCheckBoxCell : DataGridViewCell, IDataGridViewEditingCell {
         public override Type EditType { get; }
     }
     public class DataGridViewColumn : DataGridViewBand, IComponent, IDisposable
     public class DataGridViewComboBoxCell : DataGridViewCell {
         public override Type EditType { get; }
     }
     public class DataGridViewComboBoxColumn : DataGridViewColumn
     public class DataGridViewImageCell : DataGridViewCell {
         public override Type EditType { get; }
     }
     public class DataGridViewImageColumn : DataGridViewColumn
     public class DataGridViewLinkCell : DataGridViewCell {
         public override Type EditType { get; }
     }
     public class DataGridViewLinkColumn : DataGridViewColumn
     public class DataGridViewTextBoxEditingControl : TextBox, IDataGridViewEditingControl {
-        public virtual DataGridView EditingControlDataGridView { get; set; }
+        public virtual DataGridView? EditingControlDataGridView { get; set; }
     }
     public class DataObject : IDataObject, IDataObject {
-        public virtual Stream GetAudioStream();
+        public virtual Stream? GetAudioStream();
-        public virtual object GetData(string format);
+        public virtual object? GetData(string format);
-        public virtual object GetData(string format, bool autoConvert);
+        public virtual object? GetData(string format, bool autoConvert);
-        public virtual object GetData(Type format);
+        public virtual object? GetData(Type format);
-        public virtual Image GetImage();
+        public virtual Image? GetImage();
-        public virtual void SetData(object data);
+        public virtual void SetData(object? data);
-        public virtual void SetData(string format, bool autoConvert, object data);
+        public virtual void SetData(string format, bool autoConvert, object? data);
-        public virtual void SetData(string format, object data);
+        public virtual void SetData(string format, object? data);
-        public virtual void SetData(Type format, object data);
+        public virtual void SetData(Type format, object? data);
-        int IDataObject.EnumDAdvise(out IEnumSTATDATA enumAdvise);
+        int IDataObject.EnumDAdvise(out IEnumSTATDATA? enumAdvise);
     }
     public class DateTimePicker : Control {
         public Font CalendarFont { get; set; }
         public override string Text { get; set; }
+        protected override void OnGotFocus(EventArgs e);
         public class DateTimePickerAccessibleObject : Control.ControlAccessibleObject {
+            public override string DefaultAction { get; }
-            public override string KeyboardShortcut { get; }
+            public override string? KeyboardShortcut { get; }
+            public override string Name { get; }
+            public override void DoDefaultAction();
         }
     }
     public sealed class DockingAttribute : Attribute {
-        public override bool Equals(object obj);
+        public override bool Equals(object? obj);
     }
     public class DomainUpDown : UpDownBase {
-        protected override void OnChanged(object source, EventArgs e);
+        protected override void OnChanged(object? source, EventArgs e);
-        protected void OnSelectedItemChanged(object source, EventArgs e);
+        protected void OnSelectedItemChanged(object? source, EventArgs e);
-        protected override void OnTextBoxKeyPress(object source, KeyPressEventArgs e);
+        protected override void OnTextBoxKeyPress(object? source, KeyPressEventArgs e);
         public class DomainItemAccessibleObject : AccessibleObject {
-            public DomainItemAccessibleObject(string name, AccessibleObject parent);
+            public DomainItemAccessibleObject(string? name, AccessibleObject parent);
         }
         public class DomainUpDownAccessibleObject : Control.ControlAccessibleObject {
-            public override AccessibleObject GetChild(int index);
+            public override AccessibleObject? GetChild(int index);
         }
     }
     public class DragEventArgs : EventArgs {
+        public DragEventArgs(IDataObject? data, int keyState, int x, int y, DragDropEffects allowedEffect, DragDropEffects effect, DropImageType dropImageType, string message, string messageReplacementToken);
+        public DropImageType DropImageType { get; set; }
+        public string Message { get; set; }
+        public string MessageReplacementToken { get; set; }
     }
+    public enum DropImageType {
+        Copy = 1,
+        Invalid = -1,
+        Label = 6,
+        Link = 4,
+        Move = 2,
+        NoImage = 8,
+        None = 0,
+        Warning = 7,
+    }
     public class ErrorProvider : Component, IExtenderProvider, ISupportInitialize {
+        public bool HasErrors { get; }
     }
     public abstract class FeatureSupport : IFeatureSupport {
-        public abstract Version GetVersionPresent(object feature);
+        public abstract Version? GetVersionPresent(object feature);
-        public static Version GetVersionPresent(string featureClassName, string featureConstName);
+        public static Version? GetVersionPresent(string featureClassName, string featureConstName);
     }
     public abstract class FileDialog : CommonDialog {
+        public bool AddToRecent { get; set; }
         public string DefaultExt { get; set; }
         public string FileName { get; set; }
         public string Filter { get; set; }
         public string InitialDirectory { get; set; }
+        public bool OkRequiresInteraction { get; set; }
+        public bool ShowHiddenFiles { get; set; }
+        public bool ShowPinnedPlaces { get; set; }
         public string Title { get; set; }
     }
     public sealed class FolderBrowserDialog : CommonDialog {
+        public bool AddToRecent { get; set; }
+        public bool OkRequiresInteraction { get; set; }
+        public bool ShowHiddenFiles { get; set; }
+        public bool ShowPinnedPlaces { get; set; }
-        public new event EventHandler HelpRequest;
+        public new event EventHandler? HelpRequest;
         public override void Reset();
     }
     public class FontDialog : CommonDialog {
-        public event EventHandler Apply;
+        public event EventHandler? Apply;
     }
     public class Form : ContainerControl {
         public bool IsMdiChild { get; }
         public bool IsMdiContainer { get; set; }
         public override string Text { get; set; }
+        protected override void OnGotFocus(EventArgs e);
+        protected override void ScaleMinMaxSize(float xScaleFactor, float yScaleFactor, bool updateContainerSize = true);
         public new class ControlCollection : Control.ControlCollection {
-            public override void Add(Control value);
+            public override void Add(Control? value);
-            public override void Remove(Control value);
+            public override void Remove(Control? value);
         }
     }
     public class FormCollection : ReadOnlyCollectionBase {
-        public virtual Form this[int index] { get; }
+        public virtual Form? this[int index] { get; }
-        public virtual Form this[string name] { get; }
+        public virtual Form? this[string? name] { get; }
     }
     public class GiveFeedbackEventArgs : EventArgs {
+        public GiveFeedbackEventArgs(DragDropEffects effect, bool useDefaultCursors, Bitmap dragImage, Point cursorOffset, bool useDefaultDragImage);
+        public Point CursorOffset { get; set; }
+        public Bitmap DragImage { get; set; }
+        public bool UseDefaultDragImage { get; set; }
     }
     public class GroupBox : Control {
         public override string Text { get; set; }
     }
     public interface IDataGridViewEditingControl {
-        DataGridView EditingControlDataGridView { get; set; }
+        DataGridView? EditingControlDataGridView { get; set; }
     }
     public interface IDataObject {
-        object GetData(string format);
+        object? GetData(string format);
-        object GetData(string format, bool autoConvert);
+        object? GetData(string format, bool autoConvert);
-        object GetData(Type format);
+        object? GetData(Type format);
-        void SetData(object data);
+        void SetData(object? data);
-        void SetData(string format, bool autoConvert, object data);
+        void SetData(string format, bool autoConvert, object? data);
-        void SetData(string format, object data);
+        void SetData(string format, object? data);
-        void SetData(Type format, object data);
+        void SetData(Type format, object? data);
     }
     public interface IFeatureSupport {
-        Version GetVersionPresent(object feature);
+        Version? GetVersionPresent(object feature);
     }
     public class ImageIndexConverter : Int32Converter {
-        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value);
+        public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value);
-        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType);
+        public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType);
-        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context);
+        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext? context);
-        public override bool GetStandardValuesExclusive(ITypeDescriptorContext context);
+        public override bool GetStandardValuesExclusive(ITypeDescriptorContext? context);
-        public override bool GetStandardValuesSupported(ITypeDescriptorContext context);
+        public override bool GetStandardValuesSupported(ITypeDescriptorContext? context);
     }
     public class ImageKeyConverter : StringConverter {
-        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+        public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
-        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value);
+        public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value);
-        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType);
+        public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType);
-        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context);
+        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext? context);
-        public override bool GetStandardValuesExclusive(ITypeDescriptorContext context);
+        public override bool GetStandardValuesExclusive(ITypeDescriptorContext? context);
-        public override bool GetStandardValuesSupported(ITypeDescriptorContext context);
+        public override bool GetStandardValuesSupported(ITypeDescriptorContext? context);
     }
     public sealed class ImageList : Component, IHandle {
         public bool HandleCreated { get; }
-        public ImageListStreamer ImageStream { get; set; }
+        public ImageListStreamer? ImageStream { get; set; }
-        public object Tag { get; set; }
+        public object? Tag { get; set; }
-        public event EventHandler RecreateHandle;
+        public event EventHandler? RecreateHandle;
         public sealed class ImageCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object? IList.this[int index] { get; set; }
-            public Image this[string key] { get; }
+            public Image? this[string key] { get; }
-            int IList.Add(object value);
+            int IList.Add(object? value);
-            bool IList.Contains(object value);
+            bool IList.Contains(object? value);
-            int IList.IndexOf(object value);
+            int IList.IndexOf(object? value);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
     }
     public class KeysConverter : TypeConverter, IComparer {
-        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+        public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
-        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context);
+        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext? context);
     }
     public class Label : Control, IAutomationLiveRegion {
         public override string Text { get; set; }
     }
-    public struct LinkArea {
+    public struct LinkArea : IEquatable<LinkArea> {
-        public override bool Equals(object o);
+        public override bool Equals(object? o);
+        public bool Equals(LinkArea other);
         public class LinkAreaConverter : TypeConverter {
-            public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+            public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
-            public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues);
+            public override object CreateInstance(ITypeDescriptorContext? context, IDictionary propertyValues);
-            public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes);
+            public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext? context, object value, Attribute[]? attributes);
         }
     }
     public class LinkConverter : TypeConverter {
-        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+        public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
     }
-    public delegate void LinkLabelLinkClickedEventHandler(object sender, LinkLabelLinkClickedEventArgs e);
+    public delegate void LinkLabelLinkClickedEventHandler(object? sender, LinkLabelLinkClickedEventArgs e);
     public class ListBindingConverter : TypeConverter {
-        public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType);
+        public override bool CanConvertTo(ITypeDescriptorContext? context, Type? destinationType);
-        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType);
+        public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType);
-        public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues);
+        public override object CreateInstance(ITypeDescriptorContext? context, IDictionary propertyValues);
-        public override bool GetCreateInstanceSupported(ITypeDescriptorContext context);
+        public override bool GetCreateInstanceSupported(ITypeDescriptorContext? context);
     }
     public class ListBox : ListControl {
-        public override Image BackgroundImage { get; set; }
+        public override Image? BackgroundImage { get; set; }
         public override Font Font { get; set; }
-        public object SelectedItem { get; set; }
+        public object? SelectedItem { get; set; }
         public override string Text { get; set; }
-        public new event EventHandler BackgroundImageChanged;
+        public new event EventHandler? BackgroundImageChanged;
-        public new event EventHandler BackgroundImageLayoutChanged;
+        public new event EventHandler? BackgroundImageLayoutChanged;
-        public new event EventHandler Click;
+        public new event EventHandler? Click;
-        public event DrawItemEventHandler DrawItem;
+        public event DrawItemEventHandler? DrawItem;
-        public event MeasureItemEventHandler MeasureItem;
+        public event MeasureItemEventHandler? MeasureItem;
-        public new event MouseEventHandler MouseClick;
+        public new event MouseEventHandler? MouseClick;
-        public new event EventHandler PaddingChanged;
+        public new event EventHandler? PaddingChanged;
-        public new event PaintEventHandler Paint;
+        public new event PaintEventHandler? Paint;
-        public event EventHandler SelectedIndexChanged;
+        public event EventHandler? SelectedIndexChanged;
-        public new event EventHandler TextChanged;
+        public new event EventHandler? TextChanged;
         public class IntegerCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            bool System.Collections.IList.IsReadOnly { get; }
+            bool IList.IsReadOnly { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object? IList.this[int index] { get; set; }
-            int IList.Add(object item);
+            int IList.Add(object? item);
-            bool IList.Contains(object item);
+            bool IList.Contains(object? item);
-            int IList.IndexOf(object item);
+            int IList.IndexOf(object? item);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
         public class SelectedIndexCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object? IList.this[int index] { get; set; }
-            int IList.Add(object value);
+            int IList.Add(object? value);
-            bool IList.Contains(object selectedIndex);
+            bool IList.Contains(object? selectedIndex);
-            int IList.IndexOf(object selectedIndex);
+            int IList.IndexOf(object? selectedIndex);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
         public class SelectedObjectCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            public object this[int index] { get; set; }
+            public object? this[int index] { get; set; }
-            public bool Contains(object selectedObject);
+            public bool Contains(object? selectedObject);
-            public int IndexOf(object selectedObject);
+            public int IndexOf(object? selectedObject);
-            int IList.Add(object value);
+            int IList.Add(object? value);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
     }
     public class ListView : Control {
         public override string Text { get; set; }
-        public event EventHandler<ListViewGroupEventArgs> GroupCollapsedStateChanged;
+        public event EventHandler<ListViewGroupEventArgs>? GroupCollapsedStateChanged;
-        public event EventHandler<ListViewGroupEventArgs> GroupTaskLinkClick;
+        public event EventHandler<ListViewGroupEventArgs>? GroupTaskLinkClick;
-        public ListViewItem FindItemWithText(string text);
+        public ListViewItem? FindItemWithText(string text);
-        public ListViewItem FindItemWithText(string text, bool includeSubItemsInSearch, int startIndex);
+        public ListViewItem? FindItemWithText(string text, bool includeSubItemsInSearch, int startIndex);
-        public ListViewItem FindItemWithText(string text, bool includeSubItemsInSearch, int startIndex, bool isPrefixSearch);
+        public ListViewItem? FindItemWithText(string text, bool includeSubItemsInSearch, int startIndex, bool isPrefixSearch);
         public class CheckedIndexCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object? IList.this[int index] { get; set; }
-            int IList.Add(object value);
+            int IList.Add(object? value);
-            bool IList.Contains(object checkedIndex);
+            bool IList.Contains(object? checkedIndex);
-            int IList.IndexOf(object checkedIndex);
+            int IList.IndexOf(object? checkedIndex);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
         public class CheckedListViewItemCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object IList.this[int index] { get; set; }
         }
         public class ColumnHeaderCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object IList.this[int index] { get; set; }
-            public virtual ColumnHeader Add(string text);
+            public virtual ColumnHeader Add(string? text);
-            public virtual ColumnHeader Add(string text, int width);
+            public virtual ColumnHeader Add(string? text, int width);
-            public virtual ColumnHeader Add(string text, int width, HorizontalAlignment textAlign);
+            public virtual ColumnHeader Add(string? text, int width, HorizontalAlignment textAlign);
-            public virtual ColumnHeader Add(string key, string text, int width, HorizontalAlignment textAlign, string imageKey);
+            public virtual ColumnHeader Add(string? key, string? text, int width, HorizontalAlignment textAlign, string imageKey);
         }
         public class SelectedIndexCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object? IList.this[int index] { get; set; }
-            int IList.Add(object value);
+            int IList.Add(object? value);
-            bool IList.Contains(object selectedIndex);
+            bool IList.Contains(object? selectedIndex);
-            int IList.IndexOf(object selectedIndex);
+            int IList.IndexOf(object? selectedIndex);
-            void IList.Insert(int index, object value);
+            void IList.Insert(int index, object? value);
-            void IList.Remove(object value);
+            void IList.Remove(object? value);
         }
         public class SelectedListViewItemCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object IList.this[int index] { get; set; }
         }
     }
     public class ListViewGroupCollection : ICollection, IEnumerable, IList {
-        bool System.Collections.ICollection.IsSynchronized { get; }
+        bool ICollection.IsSynchronized { get; }
-        object System.Collections.ICollection.SyncRoot { get; }
+        object ICollection.SyncRoot { get; }
-        bool System.Collections.IList.IsFixedSize { get; }
+        bool IList.IsFixedSize { get; }
-        bool System.Collections.IList.IsReadOnly { get; }
+        bool IList.IsReadOnly { get; }
-        object System.Collections.IList.this[int index] { get; set; }
+        object? IList.this[int index] { get; set; }
-        public ListViewGroup this[string key] { get; set; }
+        public ListViewGroup? this[string key] { get; set; }
-        public ListViewGroup Add(string key, string headerText);
+        public ListViewGroup Add(string? key, string? headerText);
-        int IList.Add(object value);
+        int IList.Add(object? value);
-        bool IList.Contains(object value);
+        bool IList.Contains(object? value);
-        int IList.IndexOf(object value);
+        int IList.IndexOf(object? value);
-        void IList.Insert(int index, object value);
+        void IList.Insert(int index, object? value);
-        void IList.Remove(object value);
+        void IList.Remove(object? value);
     }
     public class ListViewHitTestInfo {
         public ListViewItem Item { get; }
         public ListViewHitTestLocations Location { get; }
         public ListViewItem.ListViewSubItem SubItem { get; }
     }
     public class ListViewItem : ICloneable, IKeyboardToolTip, ISerializable {
         public class ListViewSubItem {
-            public ListViewSubItem(ListViewItem owner, string text);
+            public ListViewSubItem(ListViewItem owner, string? text);
-            public ListViewSubItem(ListViewItem owner, string text, Color foreColor, Color backColor, Font font);
+            public ListViewSubItem(ListViewItem owner, string? text, Color foreColor, Color backColor, Font font);
             public string Name { get; set; }
-            public object Tag { get; set; }
+            public object? Tag { get; set; }
             public string Text { get; set; }
         }
         public class ListViewSubItemCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object? IList.this[int index] { get; set; }
-            public virtual ListViewItem.ListViewSubItem this[string key] { get; }
+            public virtual ListViewItem.ListViewSubItem? this[string key] { get; }
-            public ListViewItem.ListViewSubItem Add(string text);
+            public ListViewItem.ListViewSubItem Add(string? text);
-            public ListViewItem.ListViewSubItem Add(string text, Color foreColor, Color backColor, Font font);
+            public ListViewItem.ListViewSubItem Add(string? text, Color foreColor, Color backColor, Font font);
-            public bool Contains(ListViewItem.ListViewSubItem subItem);
+            public bool Contains(ListViewItem.ListViewSubItem? subItem);
-            public virtual bool ContainsKey(string key);
+            public virtual bool ContainsKey(string? key);
-            public int IndexOf(ListViewItem.ListViewSubItem subItem);
+            public int IndexOf(ListViewItem.ListViewSubItem? subItem);
-            public virtual int IndexOfKey(string key);
+            public virtual int IndexOfKey(string? key);
-            public void Remove(ListViewItem.ListViewSubItem item);
+            public void Remove(ListViewItem.ListViewSubItem? item);
-            public virtual void RemoveByKey(string key);
+            public virtual void RemoveByKey(string? key);
-            int IList.Add(object item);
+            int IList.Add(object? item);
-            bool IList.Contains(object item);
+            bool IList.Contains(object? item);
-            int IList.IndexOf(object subItem);
+            int IList.IndexOf(object? subItem);
-            void IList.Insert(int index, object item);
+            void IList.Insert(int index, object? item);
-            void IList.Remove(object item);
+            void IList.Remove(object? item);
         }
     }
     public class ListViewItemStateImageIndexConverter : ImageIndexConverter {
-        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context);
+        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext? context);
     }
     public class MaskedTextBox : TextBoxBase {
-        public IFormatProvider FormatProvider { get; set; }
+        public IFormatProvider? FormatProvider { get; set; }
         public new string[] Lines { get; set; }
         public string Mask { get; set; }
-        public MaskedTextProvider MaskedTextProvider { get; }
+        public MaskedTextProvider? MaskedTextProvider { get; }
         public override string SelectedText { get; set; }
         public override string Text { get; set; }
-        public Type ValidatingType { get; set; }
+        public Type? ValidatingType { get; set; }
-        public new event EventHandler AcceptsTabChanged;
+        public new event EventHandler? AcceptsTabChanged;
-        public event EventHandler IsOverwriteModeChanged;
+        public event EventHandler? IsOverwriteModeChanged;
-        public event EventHandler MaskChanged;
+        public event EventHandler? MaskChanged;
-        public event MaskInputRejectedEventHandler MaskInputRejected;
+        public event MaskInputRejectedEventHandler? MaskInputRejected;
-        public new event EventHandler MultilineChanged;
+        public new event EventHandler? MultilineChanged;
-        public event EventHandler TextAlignChanged;
+        public event EventHandler? TextAlignChanged;
-        public event TypeValidationEventHandler TypeValidationCompleted;
+        public event TypeValidationEventHandler? TypeValidationCompleted;
-        public object ValidateText();
+        public object? ValidateText();
     }
     public sealed class MdiClient : Control {
-        public override Image BackgroundImage { get; set; }
+        public override Image? BackgroundImage { get; set; }
     }
-    public struct Message {
+    public struct Message : IEquatable<Message> {
         public IntPtr LParam { get; set; }
         public int Msg { get; set; }
         public IntPtr Result { get; set; }
         public IntPtr WParam { get; set; }
+        public bool Equals(Message other);
         public object? GetLParam(Type cls);
     }
     public class MonthCalendar : Control {
-        protected override void Dispose(bool disposing);
     }
     public class NativeWindow : MarshalByRefObject, IHandle, IWin32Window {
-        public static NativeWindow FromHandle(IntPtr handle);
+        public static NativeWindow? FromHandle(IntPtr handle);
     }
     public sealed class NotifyIcon : Component {
         public string Text { get; set; }
     }
     public class NumericUpDown : UpDownBase, ISupportInitialize {
         public override string Text { get; set; }
-        public new event EventHandler PaddingChanged;
+        public new event EventHandler? PaddingChanged;
-        public new event EventHandler TextChanged;
+        public new event EventHandler? TextChanged;
-        public event EventHandler ValueChanged;
+        public event EventHandler? ValueChanged;
-        protected override AccessibleObject CreateAccessibilityInstance();
-        protected override void OnTextBoxKeyPress(object source, KeyPressEventArgs e);
+        protected override void OnTextBoxKeyPress(object? source, KeyPressEventArgs e);
     }
     public class OpacityConverter : TypeConverter {
-        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+        public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
     }
     public sealed class OpenFileDialog : FileDialog {
+        public bool SelectReadOnly { get; set; }
+        public bool ShowPreview { get; set; }
     }
     public class OSFeature : FeatureSupport {
-        public override Version GetVersionPresent(object feature);
+        public override Version? GetVersionPresent(object feature);
     }
-    public struct Padding {
+    public struct Padding : IEquatable<Padding> {
+        public bool Equals(Padding other);
     }
     public class PaddingConverter : TypeConverter {
         public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext? context, object value, Attribute[]? attributes);
     }
     public class Panel : ScrollableControl {
         public override string Text { get; set; }
+        protected override AccessibleObject CreateAccessibilityInstance();
     }
     public class PrintControllerWithStatusDialog : PrintController {
-        public override Graphics OnStartPage(PrintDocument document, PrintPageEventArgs e);
+        public override Graphics? OnStartPage(PrintDocument document, PrintPageEventArgs e);
     }
     public sealed class PrintDialog : CommonDialog {
-        public PrintDocument Document { get; set; }
+        public PrintDocument? Document { get; set; }
         public PrinterSettings PrinterSettings { get; set; }
     }
     public class PrintPreviewControl : Control {
-        public PrintDocument Document { get; set; }
+        public PrintDocument? Document { get; set; }
         public override string Text { get; set; }
-        public event EventHandler StartPageChanged;
+        public event EventHandler? StartPageChanged;
-        public new event EventHandler TextChanged;
+        public new event EventHandler? TextChanged;
+        protected override AccessibleObject CreateAccessibilityInstance();
     }
     public class PrintPreviewDialog : Form {
         public override Cursor Cursor { get; set; }
         public override Font Font { get; set; }
         public override string Text { get; set; }
     }
     public class ProgressBar : Control {
         public override Font Font { get; set; }
         public override string Text { get; set; }
     }
     public class PropertyGrid : ContainerControl, IComPropertyBrowser, Interop.Ole32.IPropertyNotifySink {
-        void IComPropertyBrowser.LoadState(RegistryKey optRoot);
+        void IComPropertyBrowser.LoadState(RegistryKey key);
-        void IComPropertyBrowser.SaveState(RegistryKey optRoot);
+        void IComPropertyBrowser.SaveState(RegistryKey key);
     }
     public class RadioButton : ButtonBase {
-        public event EventHandler AppearanceChanged;
+        public event EventHandler? AppearanceChanged;
-        public event EventHandler CheckedChanged;
+        public event EventHandler? CheckedChanged;
-        public new event EventHandler DoubleClick;
+        public new event EventHandler? DoubleClick;
-        public new event MouseEventHandler MouseDoubleClick;
+        public new event MouseEventHandler? MouseDoubleClick;
     }
     public static class RadioButtonRenderer {
-        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string radioButtonText, Font font, bool focused, RadioButtonState state);
+        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string? radioButtonText, Font? font, bool focused, RadioButtonState state);
-        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string radioButtonText, Font font, Image image, Rectangle imageBounds, bool focused, RadioButtonState state);
+        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string? radioButtonText, Font? font, Image image, Rectangle imageBounds, bool focused, RadioButtonState state);
-        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string radioButtonText, Font font, TextFormatFlags flags, bool focused, RadioButtonState state);
+        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string? radioButtonText, Font? font, TextFormatFlags flags, bool focused, RadioButtonState state);
-        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string radioButtonText, Font font, TextFormatFlags flags, Image image, Rectangle imageBounds, bool focused, RadioButtonState state);
+        public static void DrawRadioButton(Graphics g, Point glyphLocation, Rectangle textBounds, string? radioButtonText, Font? font, TextFormatFlags flags, Image image, Rectangle imageBounds, bool focused, RadioButtonState state);
     }
     public sealed class SaveFileDialog : FileDialog {
+        public bool CheckWriteAccess { get; set; }
+        public bool ExpandedMode { get; set; }
     }
     public class Screen {
-        public static Screen PrimaryScreen { get; }
+        public static Screen? PrimaryScreen { get; }
-        public override bool Equals(object obj);
+        public override bool Equals(object? obj);
     }
     public class ScrollableControl : Control, IArrangedElement, IComponent, IDisposable {
-        public event ScrollEventHandler Scroll;
+        public event ScrollEventHandler? Scroll;
-        public void ScrollControlIntoView(Control activeControl);
+        public void ScrollControlIntoView(Control? activeControl);
         public class DockPaddingEdges : ICloneable {
-            public override bool Equals(object other);
+            public override bool Equals(object? other);
         }
         public class DockPaddingEdgesConverter : TypeConverter {
-            public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes);
+            public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext? context, object value, Attribute[]? attributes);
-            public override bool GetPropertiesSupported(ITypeDescriptorContext context);
+            public override bool GetPropertiesSupported(ITypeDescriptorContext? context);
         }
     }
     public abstract class ScrollBar : Control {
         public override Font Font { get; set; }
         public override string Text { get; set; }
     }
     public class SelectionRangeConverter : TypeConverter {
-        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType);
+        public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType);
-        public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues);
+        public override object CreateInstance(ITypeDescriptorContext? context, IDictionary propertyValues);
-        public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes);
+        public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext? context, object value, Attribute[]? attributes);
     }
     public class SplitContainer : ContainerControl, ISupportInitialize {
         public override string Text { get; set; }
+        protected override AccessibleObject CreateAccessibilityInstance();
     }
     public class Splitter : Control {
         public override Font Font { get; set; }
         public override string Text { get; set; }
     }
     public sealed class SplitterPanel : Panel {
         public new string Name { get; set; }
     }
     public class TabControl : Control {
         public class TabPageCollection : ICollection, IEnumerable, IList {
-            bool System.Collections.ICollection.IsSynchronized { get; }
+            bool ICollection.IsSynchronized { get; }
-            object System.Collections.ICollection.SyncRoot { get; }
+            object ICollection.SyncRoot { get; }
-            bool System.Collections.IList.IsFixedSize { get; }
+            bool IList.IsFixedSize { get; }
-            object System.Collections.IList.this[int index] { get; set; }
+            object IList.this[int index] { get; set; }
         }
     }
     public class TableLayoutPanel : Panel, IExtenderProvider {
-        public event TableLayoutCellPaintEventHandler CellPaint;
+        public event TableLayoutCellPaintEventHandler? CellPaint;
-        public Control GetControlFromPosition(int column, int row);
+        public Control? GetControlFromPosition(int column, int row);
-        public TableLayoutPanelCellPosition GetPositionFromControl(Control control);
+        public TableLayoutPanelCellPosition GetPositionFromControl(Control? control);
     }
-    public struct TableLayoutPanelCellPosition {
+    public struct TableLayoutPanelCellPosition : IEquatable<TableLayoutPanelCellPosition> {
+        public bool Equals(TableLayoutPanelCellPosition other);
     }
     public class TabPage : Panel {
         public string ImageKey { get; set; }
         public override string Text { get; set; }
         public string ToolTipText { get; set; }
         public class TabPageControlCollection : Control.ControlCollection {
-            public override void Add(Control value);
+            public override void Add(Control? value);
         }
     }
     public static class TabRenderer {
-        public static void DrawTabItem(Graphics g, Rectangle bounds, string tabItemText, Font font, bool focused, TabItemState state);
+        public static void DrawTabItem(Graphics g, Rectangle bounds, string? tabItemText, Font? font, bool focused, TabItemState state);
-        public static void DrawTabItem(Graphics g, Rectangle bounds, string tabItemText, Font font, Image image, Rectangle imageRectangle, bool focused, TabItemState state);
+        public static void DrawTabItem(Graphics g, Rectangle bounds, string? tabItemText, Font? font, Image image, Rectangle imageRectangle, bool focused, TabItemState state);
-        public static void DrawTabItem(Graphics g, Rectangle bounds, string tabItemText, Font font, TextFormatFlags flags, bool focused, TabItemState state);
+        public static void DrawTabItem(Graphics g, Rectangle bounds, string? tabItemText, Font? font, TextFormatFlags flags, bool focused, TabItemState state);
-        public static void DrawTabItem(Graphics g, Rectangle bounds, string tabItemText, Font font, TextFormatFlags flags, Image image, Rectangle imageRectangle, bool focused, TabItemState state);
+        public static void DrawTabItem(Graphics g, Rectangle bounds, string? tabItemText, Font? font, TextFormatFlags flags, Image image, Rectangle imageRectangle, bool focused, TabItemState state);
-        public static void DrawTabItem(Graphics g, Rectangle bounds, string tabItemText, Font font, TabItemState state);
+        public static void DrawTabItem(Graphics g, Rectangle bounds, string? tabItemText, Font? font, TabItemState state);
     }
     public class TextBox : TextBoxBase {
         public AutoCompleteStringCollection AutoCompleteCustomSource { get; set; }
         public virtual string PlaceholderText { get; set; }
         public override string Text { get; set; }
-        public event EventHandler TextAlignChanged;
+        public event EventHandler? TextAlignChanged;
-        public void Paste(string text);
+        public void Paste(string? text);
     }
     public abstract class TextBoxBase : Control {
         public string[] Lines { get; set; }
         public virtual string SelectedText { get; set; }
         public override string Text { get; set; }
     }
     public class ThreadExceptionDialog : Form {
-        public new event EventHandler AutoSizeChanged;
+        public new event EventHandler? AutoSizeChanged;
     }
     public class Timer : Component {
-        public object Tag { get; set; }
+        public object? Tag { get; set; }
     }
     public class ToolStrip : ScrollableControl, IArrangedElement, IComponent, IDisposable, ISupportToolStripPanel {
         public class ToolStripAccessibleObject : Control.ControlAccessibleObject {
-            public override AccessibleObject GetChild(int index);
+            public override AccessibleObject? GetChild(int index);
-            public override AccessibleObject HitTest(int x, int y);
+            public override AccessibleObject? HitTest(int x, int y);
         }
     }
     public class ToolStripArrowRenderEventArgs : EventArgs {
-        public ToolStripArrowRenderEventArgs(Graphics g, ToolStripItem toolStripItem, Rectangle arrowRectangle, Color arrowColor, ArrowDirection arrowDirection);
+        public ToolStripArrowRenderEventArgs(Graphics g, ToolStripItem? toolStripItem, Rectangle arrowRectangle, Color arrowColor, ArrowDirection arrowDirection);
-        public ToolStripItem Item { get; }
+        public ToolStripItem? Item { get; }
     }
     public class ToolStripContainer : ContainerControl {
         public override Cursor Cursor { get; set; }
+        protected override AccessibleObject CreateAccessibilityInstance();
     }
     public class ToolStripContentPanel : Panel {
         public new string Name { get; set; }
     }
     public class ToolStripDropDownMenu : ToolStripDropDown {
+        protected override AccessibleObject CreateAccessibilityInstance();
     }
-    public abstract class ToolStripItem : Component, IArrangedElement, IComponent, IDisposable, IDropTarget, IKeyboardToolTip, ISupportOleDropSource {
+    public abstract class ToolStripItem : BindableComponent, IArrangedElement, ICommandBindingTargetProvider, IComponent, IDisposable, IDropTarget, IKeyboardToolTip, ISupportOleDropSource {
+        public ICommand Command { get; set; }
+        public object CommandParameter { get; set; }
+        public event EventHandler CommandCanExecuteChanged;
+        public event EventHandler CommandChanged;
+        public event EventHandler CommandParameterChanged;
+        public DragDropEffects DoDragDrop(object data, DragDropEffects allowedEffects, Bitmap dragImage, Point cursorOffset, bool useDefaultDragImage);
+        protected virtual void OnCommandCanExecuteChanged(EventArgs e);
+        protected virtual void OnCommandChanged(EventArgs e);
+        protected virtual void OnCommandParameterChanged(EventArgs e);
+        protected virtual void OnRequestCommandExecute(EventArgs e);
     }
     public class ToolStripItemImageRenderEventArgs : ToolStripItemRenderEventArgs {
-        public ToolStripItemImageRenderEventArgs(Graphics g, ToolStripItem item, Image image, Rectangle imageRectangle);
+        public ToolStripItemImageRenderEventArgs(Graphics g, ToolStripItem item, Image? image, Rectangle imageRectangle);
     }
     public class ToolStripItemRenderEventArgs : EventArgs {
-        public ToolStrip ToolStrip { get; }
+        public ToolStrip? ToolStrip { get; }
     }
     public class ToolStripItemTextRenderEventArgs : ToolStripItemRenderEventArgs {
-        public ToolStripItemTextRenderEventArgs(Graphics g, ToolStripItem item, string text, Rectangle textRectangle, Color textColor, Font textFont, ContentAlignment textAlign);
+        public ToolStripItemTextRenderEventArgs(Graphics g, ToolStripItem item, string? text, Rectangle textRectangle, Color textColor, Font? textFont, ContentAlignment textAlign);
-        public ToolStripItemTextRenderEventArgs(Graphics g, ToolStripItem item, string text, Rectangle textRectangle, Color textColor, Font textFont, TextFormatFlags format);
+        public ToolStripItemTextRenderEventArgs(Graphics g, ToolStripItem item, string? text, Rectangle textRectangle, Color textColor, Font? textFont, TextFormatFlags format);
     }
     public class ToolStripPanel : ContainerControl, IArrangedElement, IComponent, IDisposable {
         public override string Text { get; set; }
-        public new event EventHandler AutoSizeChanged;
+        public new event EventHandler? AutoSizeChanged;
-        public event EventHandler RendererChanged;
+        public event EventHandler? RendererChanged;
-        public new event EventHandler TabIndexChanged;
+        public new event EventHandler? TabIndexChanged;
-        public new event EventHandler TabStopChanged;
+        public new event EventHandler? TabStopChanged;
-        public new event EventHandler TextChanged;
+        public new event EventHandler? TextChanged;
+        protected override AccessibleObject CreateAccessibilityInstance();
-        public ToolStripPanelRow PointToRow(Point clientLocation);
+        public ToolStripPanelRow? PointToRow(Point clientLocation);
     }
     public class TrackBar : Control, ISupportInitialize {
         public override Font Font { get; set; }
         public override string Text { get; set; }
     }
     public class TreeNode : MarshalByRefObject, ICloneable, IKeyboardToolTip, ISerializable
     public class TreeView : Control {
+        protected override AccessibleObject CreateAccessibilityInstance();
     }
     public class TreeViewImageIndexConverter : ImageIndexConverter {
-        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context);
+        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext? context);
     }
     public class TreeViewImageKeyConverter : ImageKeyConverter {
-        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType);
+        public override object? ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType);
     }
     public abstract class UpDownBase : ContainerControl {
-        public override Image BackgroundImage { get; set; }
+        public override Image? BackgroundImage { get; set; }
-        public override ContextMenuStrip ContextMenuStrip { get; set; }
+        public override ContextMenuStrip? ContextMenuStrip { get; set; }
         public override string Text { get; set; }
-        public new event EventHandler AutoSizeChanged;
+        public new event EventHandler? AutoSizeChanged;
-        public new event EventHandler BackgroundImageChanged;
+        public new event EventHandler? BackgroundImageChanged;
-        public new event EventHandler BackgroundImageLayoutChanged;
+        public new event EventHandler? BackgroundImageLayoutChanged;
-        public new event EventHandler MouseEnter;
+        public new event EventHandler? MouseEnter;
-        public new event EventHandler MouseHover;
+        public new event EventHandler? MouseHover;
-        public new event EventHandler MouseLeave;
+        public new event EventHandler? MouseLeave;
-        public new event MouseEventHandler MouseMove;
+        public new event MouseEventHandler? MouseMove;
+        protected override AccessibleObject CreateAccessibilityInstance();
-        protected virtual void OnChanged(object source, EventArgs e);
+        protected virtual void OnChanged(object? source, EventArgs e);
-        protected virtual void OnTextBoxKeyDown(object source, KeyEventArgs e);
+        protected virtual void OnTextBoxKeyDown(object? source, KeyEventArgs e);
-        protected virtual void OnTextBoxKeyPress(object source, KeyPressEventArgs e);
+        protected virtual void OnTextBoxKeyPress(object? source, KeyPressEventArgs e);
-        protected virtual void OnTextBoxLostFocus(object source, EventArgs e);
+        protected virtual void OnTextBoxLostFocus(object? source, EventArgs e);
-        protected virtual void OnTextBoxResize(object source, EventArgs e);
+        protected virtual void OnTextBoxResize(object? source, EventArgs e);
-        protected virtual void OnTextBoxTextChanged(object source, EventArgs e);
+        protected virtual void OnTextBoxTextChanged(object? source, EventArgs e);
     }
     public class UserControl : ContainerControl {
         public override string Text { get; set; }
     }
     public class WebBrowser : WebBrowserBase {
+        protected override AccessibleObject CreateAccessibilityInstance();
     }
     public class WebBrowserNavigatingEventArgs : CancelEventArgs {
         public string TargetFrameName { get; }
         public Uri Url { get; }
     }
 }