Open
Description
Planning content for Desktop Guide - WinForms portion.
Update We should redesign this plan like the WPF plan was designed: evaluate each article in the .NET Framework for value, and redesign the TOC below to include each new article specifically.
The current overall plan is to:
- Copy the existing winforms documentation for .NET 5
- Sanitize content for .NET Framework terminology.
- Trim out articles that don't add value (small articles that are not critical to the story and are easily answered with a stackoverflow question).
Content plan items
- Getting started ([winforms-dotnet5] Move content - Getting started #73)
- Overview
- Create an app
- Migration ([winforms-dotnet5] Move content - Migration #74)
- Migrate to .NET
- Forms ([winforms-dotnet5] Move content - Forms #75)
- Overview (link (WPF) link link)
- Event handlers (link link)
This requires an update with info from order of events - Automatic scaling (link link)
- High DPI support (link)
- Common tasks
- Dialogs and popups ([winforms-dotnet5] Move content - Dialogs and popups #1069)
This content should mirror what is in WPF. This content doesn't really exist in the .NET Framework winforms area- Overview (link link (WPF))
- Common tasks
- Display a message box (link (WPF))
- Open a form (link (WPF))
- Close a form (link (WPF))
- Display a system dialog box (link (WPF) link)
- Get or set the main form (link (WPF))
- Controls ([winforms-dotnet5] Move content - Controls #76)
- Overview
- Handle control events (link link)
- Layout options (link)
- Layout options
- Labels
- Custom controls
- Custom painting and drawing
- Thread-safe calling (link)
- Apply accessibility
- Control reference... ([winforms-dotnet5] Move content - Controls Ref #77)
- Common tasks
- Develop controls ([epic] WinForms Developing User Controls - Move and port content #1070)
Custom designers for .NET require new namespace and type Custom Designers for .NET 5 require different design namespace and type #41 - User input - Keyboard ([winforms-dotnet5] Move content - User Input - Keyboard #78)
- Overview
- Using keyboard events
- Input validation
- Common tasks
- Change the pressed key
- Determine which modifier key is pressed
- Handle input at the form level
- Simulate keyboard events
- User input - Mouse ([winforms-dotnet5] Move content - User Input - Mouse #79)
- Accessibility ([winforms-dotnet5] Move content - Accessibility #1071)
- Overview (Needs more. link from controls section)
- Improvements over .NET Framework (link)
- Designing an accessible UI
- Localization
- Data binding ([winforms-dotnet5] Move content - Data binding #1074)
- Publishing
- Printing ([winforms-dotnet5] Move content - Printing #1075)
- Using Visual Studio (Planning WinForms Visual Studio content #181)
- Advanced
- Graphics and drawing
- App settings (make sure to distinguish portable (app-level) settings from user profile settings)
- Drag-and-drop
- COM and Unmanaged apps
- Power management
- Forms visual inheritance
- Multiple-Document Interface (MDI) apps
- Integrate user help
- Interop with WPF and UWP
.NET Framework 4 TOC and my notes
- Windows Forms
- Getting Started with Windows Forms
- Windows Forms Overview (keep)
- Creating a New Windows Form
- How to: Create a Windows Forms Application from the Command Line (keep; rewrite to visual studio-based
- Windows Forms Coordinates (low; small)
- Creating Event Handlers in Windows Forms > I suggest this split and tuned to both FORMS and CONTROLS. Those are the winforms specific things that have events. No need for a generic overview
- Events Overview (low;)
- Event Handlers Overview (low; small; merge with events overview)
- How to: Create Event Handlers at Run Time for Windows Forms (med; google search items suggest ppl looking for generic C# events; also, doesn't really do "run time" events; Improve with VS)
- How to: Connect Multiple Events to a Single Event Handler in Windows Forms (low; odd. vb is demonstrated in code, C# in VS steps. is it useful? delete)
- Order of Events in Windows Forms (important; break up and put in forms overview (or events info) and controls overview (or events info))
- Adjusting the Size and Scale of Windows Forms
- How to: Resize Windows Forms" (keep)
- Automatic Scaling in Windows Forms (keep)
- How to: Respond to Font Scheme Changes in a Windows Forms Application (low;keep)
- High DPI Support In Windows Forms (med;keep)
- Changing the Appearance of Windows Forms
- How to: Change the Borders of Windows Forms (low;delete or keep)
- Windows Forms Controls
- Arrange controls on Windows Forms \
- How to: Align Multiple Controls | ALL ITEMS IN THIS GROUPED BLOCK
- How to: Anchor Controls | =========================================================================
- How to: Dock Controls | Some tasks are VS designer related. some are code related;
- How to: Layer Objects | needs more diagrams and placed in a How to use VS with WinForms section
- How to: Lock Controls | Port how to where it makes sense
- How to: Position Controls |
- How to: Resize Controls |
- How to: Set Grid Options for All Windows Forms |
- How to: Reassign Existing Controls to a Different Parent |
- How to: Set the Tab Order |
- Walkthrough: Arrange Controls Using Snaplines (Odd that it's a walkthrough; this info should be ported to a generic layout article)
- Walkthrough: Laying Out Windows Forms Controls with Padding, Mar... (Port to a generic layout overview article)
- Putting Controls on Windows Forms |
- How to: Add Controls |
- How to: Add Controls Without a User Interface |
- How to: Add to or Remove from a Collection of Controls at Run Time |
- Walkthrough: Automatically Populating the Toolbox with Custom Components |
- How to: Add ActiveX Controls |
- Considerations When Hosting an ActiveX Control on a Windows Form /
- Label controls and provide shortcuts
- Overview (delete; not an overview, just header links)
- Create access keys for controls (important; ported)
- Set the text displayed by a control (low; not really useful)
- Set the image displayed by a control (low; not really useful)
- Provide accessibility information for controls (important; ported)
- Controls to use on Windows Forms
- .... \
- .... | Almost 500 articles breaking down individual controls with overviews
- .... | and how to articles.
- .... |
- .... | Some of the higher level articles should be ported as reference material
- .... | such as what controls are available and what they do.
- .... |
- .... | Import these into the TOC. Scrub the articles for Framework.
- .... /
- Developing Custom Windows Forms Controls with the .NET Framework
- Overview of Using Controls in Windows Forms (delete; basic overview of adding buttons??)
- Varieties of Custom Controls (low; merge below article into same "Types of Custom Controls" article)
- Control Type Recommendations (low; merge above article into same "Types of Custom Controls" article)
- Windows Forms Control Development Basics (low; merge into the new "Types of Custom Controls" article or an overview article)
- How to: Develop a Simple Windows Forms Control (low; important; clean up)
- How to: Create a Windows Forms Control That Shows Progress (low; would make good tutorial)
- Developing a Composite Windows Forms Control (delete; link farm)
- Properties in Windows Forms Controls
- Defining a Property (low; important; designer related; could be rolled into something else)
- Defining Default Values with the ShouldSerialize and Reset Methods (low; important; designer related; could be rolled into something else)
- Property-Changed Events (low; generic guidance on .NET property change handler; move to design guide for WinForms)
- How to: Expose Properties of Constituent Controls (low; generic guidance on .NET property forwarding; delete?)
- Method Implementation in Custom Controls (low; generic guidance on .NET creating a method; delete?)
- Events in Windows Forms Controls
- Overriding the OnPaint Method (med; mix of generic OnEventName guidance and OnPaint; roll into something else)
- Handling User Input (low; important; events list related to input)
- Defining an Event (low; generic guidance on .NET event design implementation; move to design guide for WinForms?)
- Attributes in Windows Forms Controls (low; designer related; move to design guide for WinForms)
- How to: Apply Attributes in Windows Forms Controls (low; semi-designer data-binding related; unsure)
- Custom Control Painting and Rendering
- Rendering a Windows Forms Control (low; important; basic overview)
- User-Drawn Controls (low; important)
- Constituent Controls (low; small; roll into other article)
- How to: Make Your Control Invisible at Run Time (low; small; it's show/hide a control)
- How to: Give Your Control a Transparent Background (low; small; more popular than other article; it's a tip/trick too)
- Rendering Controls with Visual Styles (low; overview; is it still important? talks about "in .net 2.0 we introduced...")
- How to: Use a Control Rendering Class (low; briefly shows how to use ControlPaint class and detect if visual styles is on; roll into other?)
- How to: Render a Visual Style Element (low; Unsure what it does. Never heard of this stuff before. Not in my books either)
- Layout in Windows Forms Controls
- AutoSize Property Overview (low; important)
- How to: Align a Control to the Edges of Forms (low; too small; roll or delete)
- Margin and Padding in Windows Forms Controls (low; important; more examples needed; more info needed (the designer takes these into account, does autosizing and layout?); maybe roll into general layout article?)
- How to: Create a Border Around a Windows Forms Control Using Padding (low; too small; delete)
- How to: Implement a Custom Layout Engine (dead; interesting; roll into a conceptual perhaps?)
- Multithreading in Windows Forms Controls
- How to: Make Thread-Safe Calls to Windows Forms Controls (high; important)
- How to: Use a Background Thread to Search for Files (low; important info should be ported into general multithreading overview; delete)
- Windows Forms Controls in the .NET Framework by Function (med; useful)
- Develop Controls at Design Time
- Overview > (This whole section has a lot of great content. Walkthroughs are short, perhaps turn them into a full user control tutorial?)
- Walkthrough: Author a Composite Control (low; important; feedback on article states "Add VB" and "Better example of a real composite control (forward events etc)")
- Walkthrough: Inherit from a Control (low; doesn't detail anything special; delete)
- Walkthrough: Perform Common Tasks Using Design Actions (dead; delete/rewrite; describes the > icon actions in the designer, not how to creat them!)
- Walkthrough: Serialize Collections of Standard Types (dead; important; roll into something; useful information)
- Walkthrough: Debug Custom Controls (low; important; needs clarification, less sections)
- Walkthrough: Create a Control That Takes Advantage of Design-Time Features (med; important; needs clean up; demos two controls. Turn into tutorial)
- How to: Author Controls (dead; move into overview; nothing to do with design-time)
- How to: Author Composite Controls (dead; not much info; delete/roll into tutorial)
- How to: Inherit from the UserControl Class (low; less info than "composite controls" describes same thing better keyword though; delete)
- How to: Inherit from Existing Controls (med; important; improve with better examples and keywords)
- How to: Inherit from the Control Class (low; important; improve with better examples and keywords)
- How to: Align a Control to the Edges of Forms (dead; delete)
- How to: Display a Control in Choose Toolbox Items (low; describes registering with GAC; how does this work in .NET 5+???)
- How to: Provide a Toolbox Bitmap for a Control (low; important to the designer)
- How to: Test the Run-Time Behavior of a UserControl (delete; doesn't work in .NET 5)
- Design-Time Errors in the Windows Forms Designer (high; important; needs clean up, better keywords, maybe a whole reference section in the TOC related to these errors? lots of neg feedback)
- Troubleshoot Control and Component Authoring (dead; delete)
- User Input in Windows Forms
- User Input in a Windows Forms Application (low;tiny;roll into both mouse/keyboard overviews)
- Keyboard Input in a Windows Forms Application
- How Keyboard Input Works (low;important;is overview)
- Using Keyboard Events (low;important;roll into overview)
- How to: Modify Keyboard Input to a Standard Control (low;important;bounce
- How to: Determine Which Modifier Key Was Pressed (low;important;bounce
- How to: Handle Keyboard Input at the Form Level (low;important
- Mouse Input in a Windows Forms Application
- How Mouse Input Works in Windows Forms (low;important)
- Mouse Events in Windows Forms (low;important)
- How to: Distinguish Between Clicks and Double-Clicks (low
- Mouse Pointers in Windows Forms (low;important;roll into overview)
- Mouse Capture in Windows Forms (low;important;roll into overview)
- Drag-and-Drop Functionality in Windows Forms (low;important;roll into how to or overview)
- How to: Simulate Mouse and Keyboard Events in Code (med;keep and update
- How to: Handle User Input Events in Windows Forms Controls (low;delete;it's a single paragraph with a whole app in one file. Odd
- User Input Validation in Windows Forms (low;important)
- Dialog Boxes in Windows Forms
- How to: Display Dialog Boxes for Windows Forms (med;small;roll into general display windows article
- Windows Forms Data Binding
- Data Binding and Windows Forms (high;low ratings;merge into single overview)
- Data Sources Supported by Windows Forms (high;low ratings;merge into single overview)
- Interfaces Related to Data Binding (low; important)
- Change Notification in Windows Forms Data Binding (low; important; should be rolled into something else though)
- How to: Apply the PropertyNameChanged Pattern (low; important; small, rolled into bigger)
- How to: Create a Bound Control and Format the Displayed Data (low; important; should be rewritten with better example)
- How to: Create a Simple-Bound Control on a Windows Form (low; important; should be rewritten with better example)
- How to: Ensure Multiple Controls Bound to the Same Data Source Remain Synchronized (low; important; needs improvement and more details)
- How to: Ensure the Selected Row in a Child Table Remains at the Correct Position (low; important)
- How to: Implement the IListSource Interface (low; delete)
- How to: Implement the INotifyPropertyChanged Interface (med; important)
- How to: Implement the ITypedList Interface (low; delete)
- How to: Navigate Data in Windows Forms (med; improve into tutorial)
- Windows Forms Security
- Security in Windows Forms Overview (review; CAS doesn't apply anymore)
- More Secure File and Data Access in Windows Forms (low; important; some stuff doesn't apply; move elsewhere)
- More Secure Printing in Windows Forms (delete; not apply)
- Additional Security Considerations in Windows Forms (delete; not apply)
- ClickOnce Deployment for Windows Forms (migrate; link farm for VS docs)
- Accessibility improvements with .NET Core 3.0 (move)
- How to: Access Keyed Collections in Windows Forms (low; delete
- Enhancing Windows Forms Applications
- Graphics and Drawing in Windows Forms
- .... \
- .... |
- .... | A lot of content here. Well written and important.
- .... | Do the same as the Controls Overview section and cross link it to the TOC
- .... |
- .... /
- Application Settings for Windows Forms (a lot of this stuff is covered in visual studio docs. what should we cover?)
- Application Settings Overview (med; important)
- Application Settings Architecture (low; important)
- Application Settings Attributes (low; important)
- Application Settings for Custom Controls (low; important)
- Using Application Settings and User Settings
- How To: Create a New Setting at Design Time (med; important; improve)
- How To: Change the Value of an Existing Setting at Design Time (med; important; improve)
- How To: Change the Value of a Setting Between Application Sessions (med; important; improve)
- How To: Read Settings at Run Time With C# (high; important; improve; verbatim (1))
- How To: Write User Settings at Run Time with C# (high; important; improve)
- How To: Add Multiple Sets of Settings To Your Application in C# (low; important; improve)
- How to: Create Application Settings (low; important)
- How to: Validate Application Settings (low; important)
- Windows Forms Print Support
- How to: Create Standard Windows Forms Print Jobs (dead; important)
- How to: Capture User Input from a PrintDialog at Run Time (dead; important)
- How to: Choose the Printers Attached to a User's Computer in Windows Forms (low; delete)
- How to: Print Graphics in Windows Forms (low; important)
- How to: Print a Multi-Page Text File in Windows Forms (low; important)
- How to: Complete Windows Forms Print Jobs (dead; small; move into something else)
- How to: Print a Windows Form (med; good page views, should keep)
- How to: Print in Windows Forms Using Print Preview (med; restructure this)
- Drag-and-Drop Operations and Clipboard Support
- Walkthrough: Performing a Drag-and-Drop Operation in Windows Forms (high; important)
- How to: Perform Drag-and-Drop Operations Between Applications (low; important)
- How to: Add Data to the Clipboard (low; important)
- How to: Retrieve Data from the Clipboard (med; important)
- Networking in Windows Forms Applications (dead; link farm; delete)
- Globalizing Windows Forms
- International Fonts in Windows Forms and Controls (dead; important)
- Bi-Directional Support for Windows Forms Applications (dead; important)
- Display of Asian Characters with the ImeMode Property (dead; small; roll into something else)
- Windows Forms and Unmanaged Applications
- Windows Forms and Unmanaged Applications Overview (dead; review; what is relevant?)
- How to: Support COM Interop by Displaying Each Windows Form on Its Own Thread (dead; review; what is relevant?)
- How to: Support COM Interop by Displaying a Windows Form with the ShowDialog Method (dead; review; what is relevant?)
- System Information and Windows Forms (dead; small)
- Power Management in Windows Forms (dead; important; update with more info)
- Help Systems in Windows Forms Applications (dead; HTML help is mostly dead on windows? What replaces it?)
- Windows Forms Visual Inheritance (Create new section under forms that relates to this content)
- How to: Inherit Windows Forms (med; small; )
- How to: Inherit Forms Using the Inheritance Picker Dialog Box (low; small; visual studio related)
- Effects of Modifying a Base Form's Appearance (dead; delete)
- Walkthrough: Demonstrating Visual Inheritance (low; delete)
- How to: Use the Modifiers and GenerateMember Properties (low; important with )
- Multiple-Document Interface (MDI) Applications
- How to: Create MDI Parent Forms (med; important)
- How to: Create MDI Child Forms (high; important)
- How to: Determine the Active MDI Child (low; important)
- How to: Send Data to the Active MDI Child (low; important)
- How to: Arrange MDI Child Forms (low; )
- Integrating User Help in Windows Forms
- How to: Provide Help in a Windows Application (low; important but unsure if HELP 1.0 is still supported??)
- How to: Display Pop-up Help (low; important)
- Control Help Using ToolTips (dead; important)
- Windows Forms Accessibility
- Walkthrough: Creating an Accessible Windows-based Application (dead; important)
- Properties on Windows Forms Controls That Support Accessibility Guidelines (dead; important)
- Using WPF Controls (rewrite this whole section. Focus on XAML islands Win10+WPF?)
- How to: Copy and Paste an ElementHost Control at Design Time (dead; delete)
- Walkthrough: Arranging WPF Content on Windows Forms at Design Time (dead; delete)
- Walkthrough: Creating New WPF Content on Windows Forms at Design Time (med; improve)
- Walkthrough: Assigning WPF Content on Windows Forms at Design Time (dead; delete)
- Walkthrough: Styling WPF Content (dead; rewrite/roll; Interesting as it describes editing the XAML in the control host)
(1)
I think you have omitted how settings get implemented. The configuration is saved to a Settings.settings file. Access the setting properties via the Settings.cs file. Any best practice suggestions? Also the documentation -- at least how it links from Google -- appears to confuse Runsettings with Settings. Also it might be useful to explain the difference in use between the Settings file/objects and the Application Configuration File. When should I use the Settings vs. App.config?
</details>