fbpx
Wikipedia

Windows Forms

Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono,[2] providing a platform to write client applications for desktop, laptop, and tablet PCs.[3] While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a comparable paradigm[4] and only acts as a platform for the user interface tier in a multi-tier solution.[5]

Windows Forms (WinForms)
Other namesWinForms
Original author(s).NET: Microsoft,
Mono: Ximian/Novell
Developer(s).NET Foundation
Initial releaseFebruary 13, 2002; 22 years ago (2002-02-13)
Stable release
v8.0.0 / November 14, 2023; 5 months ago (2023-11-14)[1]
Repository
  • github.com/dotnet/winforms
Written inC#
Operating systemMicrosoft Windows
Platform.NET Framework, .NET, Mono
TypeSoftware framework, widget toolkit
LicenseMIT License
Websitelearn.microsoft.com/en-us/dotnet/desktop/winforms/

At the Microsoft Connect event on December 4, 2018, Microsoft announced releasing Windows Forms as an open source project on GitHub. It is released under the MIT License. With this release, Windows Forms has become available for projects targeting the .NET Core framework. However, the framework is still available only on the Windows platform, and Mono's incomplete implementation of Windows Forms remains the only cross-platform implementation.[6][7]

Architecture edit

 
This API is a part of .NET Framework 3.0

A Windows Forms application is an event-driven application supported by Microsoft's .NET Framework. Unlike a batch program, it spends most of its time simply waiting for the user to do something, such as fill in a text box or click a button. The code for the application can be written in a .NET programming language such as C# or Visual Basic.

Windows Forms provides access to native Windows User Interface Common Controls by wrapping the existent Windows API in managed code.[8] With the help of Windows Forms, the .NET Framework provides a more comprehensive abstraction above the Win32 API than Visual Basic or MFC did.[9]

Windows Forms is similar to Microsoft Foundation Class (MFC) library in developing client applications. It provides a wrapper consisting of a set of C++ classes for development of Windows applications. However, it does not provide a default application framework like the MFC. Every control in a Windows Forms application is a concrete instance of a class.

Features edit

All visual elements in the Windows Forms class library derive from the Control class. This provides the minimal functionality of a user interface element such as location, size, color, font, text, as well as common events like click and drag/drop. The Control class also has docking support to let a control rearrange its position under its parent. The Microsoft Active Accessibility support in the Control class also helps impaired users to use Windows Forms better.[10]

In Visual Studio, forms are created using drag-and-drop techniques. A tool is used to place controls (e.g., text boxes, buttons, etc.) on the form (window). Controls have attributes and event handlers associated with them. Default values are provided when the control is created, but may be changed by the programmer. Many attribute values can be modified during run time based on user actions or changes in the environment, providing a dynamic application. For example, code can be inserted into the form resize event handler to reposition a control so that it remains centered on the form, expands to fill up the form, etc. By inserting code into the event handler for a keypress in a text box, the program can automatically translate the case of the text being entered, or even prevent certain characters from being inserted.

Besides providing access to native Windows controls like button, textbox, checkbox and listview, Windows Forms added its own controls for ActiveX hosting, layout arrangement, validation and rich data binding. Those controls are rendered using GDI+.[10]

History and future edit

Just like Abstract Window Toolkit (AWT), the equivalent Java API, Windows Forms was an early and easy way to provide graphical user interface components to the .NET Framework. Windows Forms is built on the existing Windows API and some controls merely wrap underlying Windows components.[11] Some of the methods allow direct access to Win32 callbacks, which are not available in non-Windows platforms.[11]

In .NET Framework 2.0, Windows Forms gained richer layout controls, Office 2003 style toolstrip controls, multithreading component, richer design-time and data binding support as well as ClickOnce for web-based deployment.[12][13]

With the release of .NET Framework 3.0, Microsoft released a second, parallel API for rendering GUIs: Windows Presentation Foundation (WPF) based on DirectX,[14] together with a GUI declarative language called XAML.[15]

During a question-and-answer session at the Build 2014 Conference, Microsoft explained that Windows Forms was under maintenance mode, with no new features being added, but bugs found would still be fixed.[16] Most recently, improved high-DPI support for various Windows Forms controls was introduced in updates to .NET Framework version 4.5.[17]

XAML backwards compatibility with Windows Forms edit

For future development, Microsoft has succeeded Windows Forms with an XAML-based GUI entry using frameworks such as WPF and UWP. However, drag and drop placement of GUI components in a manner similar to Windows Forms is still provided in XAML by replacing the root XAML element of the Page/Window with a "Canvas" UI-Control. When making this change, the user can build a window in a similar fashion as in Windows Forms by directly dragging and dropping components using the Visual Studio GUI.

While XAML provides drag and drop placement backwards compatibility through the Canvas Control, XAML Controls are only similar to Windows Forms Controls and are not one-to-one backwards compatible. They perform similar functions and have a similar appearance, but the properties and methods are different enough to require remapping from one API to another.

Alternative implementation edit

Mono is a project led by Xamarin (formerly by Ximian, then Novell) to create an Ecma standard compliant .NET Framework compatible set of tools.

In 2011, Mono's support for System.Windows.Forms as of .NET 2.0 was announced as complete;[18] System.Windows.Forms 2.0 works natively on Mac OS X.[19] However, System.Windows.Forms has not been actively developed on Mono.[20] Full compatibility with .NET was not possible, because Microsoft's System.Windows Forms is mainly a wrapper around the Windows API, and some of the methods allow direct access to Win32 callbacks, which are not available in platforms other than Windows.[11] A more significant problem is that, since version 5.2,[21] Mono has been upgraded so that its default is to assume a 64 bit platform. However, System.Windows.Forms on Mono for the Macintosh OS X platform has been built using a 32 bit subsystem, Carbon.[22] As of this date[when?], a 64-bit version of System.Windows.Forms for use on Mac OS X remains unavailable and only .NET applications built for the 32 bit platform can be expected to execute.

See also edit

References edit

  1. ^ "v8.0.0". github.com. 2023-11-14. Retrieved 2023-11-21.
  2. ^ Sells, Chris (September 6, 2003). Windows Forms Programming in C# (1st ed.). Addison-Wesley Professional. p. xxxviiii.
  3. ^ "Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices". Microsoft. November 2003.
  4. ^ Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix B". Moving from MFC, Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
  5. ^ "Introduction to Windows Forms" (Visual Studio 2003 documentation). Microsoft 2003.
  6. ^ Martin, Jeff (4 December 2018). "Microsoft Open Sources WPF, WinForms, and WinUI". InfoQ. Retrieved 2018-12-06.
  7. ^ Hanselman, Scott (4 December 2018). "Announcing WPF, WinForms, and WinUI are going Open Source". Retrieved 2018-12-06.
  8. ^ De Smet, Bart (January 4, 2011). "Chapter 5". C# 4.0 Unleashed. Sams Publishing.
  9. ^ Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. p. 4.
  10. ^ a b Griffiths, Ian; Adams, Matthew (March 2003). NET Windows Forms in a Nutshell. O'Reilly Media. pp. 27–53.
  11. ^ a b c "FAQ: Winforms". mono-project.com. It is very unlikely that the implementation will ever implement everything needed for full compatibility with Windows.Forms. The reason is that Windows.Forms is not a complete toolkit, and to work around this problem some of the underlying Win32 foundation is exposed to the programmer in the form of exposing the Windows message handler
  12. ^ Sells, Chris; Weinhardt, Michael (May 16, 2006). "Appendix A. What s New in Windows Forms 2.0". Windows Forms 2.0 Programming (2nd ed.). Addison-Wesley Professional.
  13. ^ Noyes, Brian (January 12, 2006). "Preface". Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET (1st ed.). Addison-Wesley Professional.
  14. ^ Hall, Gary (December 27, 2010). "DirectX, not GDI+". Pro WPF and Silverlight MVVM: Effective Application Development with Model (2010 ed.). Apress. p. 2.
  15. ^ Smith, Josh (2007-09-05). "WPF vs. Windows Forms". Josh Smith on WPF. Retrieved 2011-08-25. WPF is not intended to replace Windows Forms. [...] Windows Forms is still alive and well, and will continue to be enhanced and supported by Microsoft for years to come. WPF is simply another tool for Windows desktop application developers to use, when appropriate.
  16. ^ "A WPF Q&A". infoq.com. 2014-04-03. Retrieved 2014-04-21. Windows Forms is continuing to be supported, but in maintenance mode. They will fix bugs as they are discovered, but new functionality is off the table
  17. ^ Allen, Jonathan (2014-05-06). "High DPI Improvements for Windows Forms in .NET 4.5.2". InfoQ. Retrieved 2015-02-10.
  18. ^ "WinForms". mono-project.com. Retrieved 2011-07-30. Support for Windows Forms 2.0 is complete. At this point, we are largely just fixing bugs and polishing our code.
  19. ^ "WinForms". mono-project.com. Retrieved 2011-07-30. Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default
  20. ^ de Icaza, Miguel (2011-03-07). "GDC 2011". Retrieved 2011-07-30. For tools that are mostly OpenGL/DirectX based, use Windows.Forms, keeping in mind that some bug fixing or work around on their part might be needed as our Windows.Forms is not actively developed.
  21. ^ "Introduction to Mono on macOS". mono-project.com. Retrieved 2019-11-12.
  22. ^ Martin, Jess. "Windows.Forms Comes to 64-bit Mac OS X". Retrieved 2019-11-12.

External links edit

  • MSDN: Building Windows Forms applications
  • MSDN : Windows.Forms reference documentation
  • MSDN : Windows Forms Technical Articles - Automating Windows Form with Visual Test

windows, forms, confused, with, microsoft, forms, this, article, needs, updated, please, help, update, this, article, reflect, recent, events, newly, available, information, january, 2023, winforms, free, open, source, graphical, class, library, included, part. Not to be confused with Microsoft Forms This article needs to be updated Please help update this article to reflect recent events or newly available information January 2023 Windows Forms WinForms is a free and open source graphical GUI class library included as a part of Microsoft NET NET Framework or Mono 2 providing a platform to write client applications for desktop laptop and tablet PCs 3 While it is seen as a replacement for the earlier and more complex C based Microsoft Foundation Class Library it does not offer a comparable paradigm 4 and only acts as a platform for the user interface tier in a multi tier solution 5 Windows Forms WinForms Other namesWinFormsOriginal author s NET Microsoft Mono Ximian NovellDeveloper s NET FoundationInitial releaseFebruary 13 2002 22 years ago 2002 02 13 Stable releasev8 0 0 November 14 2023 5 months ago 2023 11 14 1 Repositorygithub wbr com wbr dotnet wbr winformsWritten inC Operating systemMicrosoft WindowsPlatform NET Framework NET MonoTypeSoftware framework widget toolkitLicenseMIT LicenseWebsitelearn wbr microsoft wbr com wbr en us wbr dotnet wbr desktop wbr winforms wbr At the Microsoft Connect event on December 4 2018 Microsoft announced releasing Windows Forms as an open source project on GitHub It is released under the MIT License With this release Windows Forms has become available for projects targeting the NET Core framework However the framework is still available only on the Windows platform and Mono s incomplete implementation of Windows Forms remains the only cross platform implementation 6 7 Contents 1 Architecture 2 Features 3 History and future 4 XAML backwards compatibility with Windows Forms 5 Alternative implementation 6 See also 7 References 8 External linksArchitecture edit nbsp This API is a part of NET Framework 3 0 A Windows Forms application is an event driven application supported by Microsoft s NET Framework Unlike a batch program it spends most of its time simply waiting for the user to do something such as fill in a text box or click a button The code for the application can be written in a NET programming language such as C or Visual Basic Windows Forms provides access to native Windows User Interface Common Controls by wrapping the existent Windows API in managed code 8 With the help of Windows Forms the NET Framework provides a more comprehensive abstraction above the Win32 API than Visual Basic or MFC did 9 Windows Forms is similar to Microsoft Foundation Class MFC library in developing client applications It provides a wrapper consisting of a set of C classes for development of Windows applications However it does not provide a default application framework like the MFC Every control in a Windows Forms application is a concrete instance of a class Features editAll visual elements in the Windows Forms class library derive from the Control class This provides the minimal functionality of a user interface element such as location size color font text as well as common events like click and drag drop The Control class also has docking support to let a control rearrange its position under its parent The Microsoft Active Accessibility support in the Control class also helps impaired users to use Windows Forms better 10 In Visual Studio forms are created using drag and drop techniques A tool is used to place controls e g text boxes buttons etc on the form window Controls have attributes and event handlers associated with them Default values are provided when the control is created but may be changed by the programmer Many attribute values can be modified during run time based on user actions or changes in the environment providing a dynamic application For example code can be inserted into the form resize event handler to reposition a control so that it remains centered on the form expands to fill up the form etc By inserting code into the event handler for a keypress in a text box the program can automatically translate the case of the text being entered or even prevent certain characters from being inserted Besides providing access to native Windows controls like button textbox checkbox and listview Windows Forms added its own controls for ActiveX hosting layout arrangement validation and rich data binding Those controls are rendered using GDI 10 History and future editJust like Abstract Window Toolkit AWT the equivalent Java API Windows Forms was an early and easy way to provide graphical user interface components to the NET Framework Windows Forms is built on the existing Windows API and some controls merely wrap underlying Windows components 11 Some of the methods allow direct access to Win32 callbacks which are not available in non Windows platforms 11 In NET Framework 2 0 Windows Forms gained richer layout controls Office 2003 style toolstrip controls multithreading component richer design time and data binding support as well as ClickOnce for web based deployment 12 13 With the release of NET Framework 3 0 Microsoft released a second parallel API for rendering GUIs Windows Presentation Foundation WPF based on DirectX 14 together with a GUI declarative language called XAML 15 During a question and answer session at the Build 2014 Conference Microsoft explained that Windows Forms was under maintenance mode with no new features being added but bugs found would still be fixed 16 Most recently improved high DPI support for various Windows Forms controls was introduced in updates to NET Framework version 4 5 17 XAML backwards compatibility with Windows Forms editFor future development Microsoft has succeeded Windows Forms with an XAML based GUI entry using frameworks such as WPF and UWP However drag and drop placement of GUI components in a manner similar to Windows Forms is still provided in XAML by replacing the root XAML element of the Page Window with a Canvas UI Control When making this change the user can build a window in a similar fashion as in Windows Forms by directly dragging and dropping components using the Visual Studio GUI While XAML provides drag and drop placement backwards compatibility through the Canvas Control XAML Controls are only similar to Windows Forms Controls and are not one to one backwards compatible They perform similar functions and have a similar appearance but the properties and methods are different enough to require remapping from one API to another Alternative implementation editMono is a project led by Xamarin formerly by Ximian then Novell to create an Ecma standard compliant NET Framework compatible set of tools In 2011 Mono s support for System Windows Forms as of NET 2 0 was announced as complete 18 System Windows Forms 2 0 works natively on Mac OS X 19 However System Windows Forms has not been actively developed on Mono 20 Full compatibility with NET was not possible because Microsoft s System Windows Forms is mainly a wrapper around the Windows API and some of the methods allow direct access to Win32 callbacks which are not available in platforms other than Windows 11 A more significant problem is that since version 5 2 21 Mono has been upgraded so that its default is to assume a 64 bit platform However System Windows Forms on Mono for the Macintosh OS X platform has been built using a 32 bit subsystem Carbon 22 As of this date when a 64 bit version of System Windows Forms for use on Mac OS X remains unavailable and only NET applications built for the 32 bit platform can be expected to execute See also edit nbsp Free and open source software portal Microsoft Visual Studio ClickOnce Abstract Window Toolkit AWT the equivalent GUI application programming interface API for the Java programming language Visual Component Library VCL from Borland Visual Test test automationReferences edit v8 0 0 github com 2023 11 14 Retrieved 2023 11 21 Sells Chris September 6 2003 Windows Forms Programming in C 1st ed Addison Wesley Professional p xxxviiii Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices Microsoft November 2003 Sells Chris Weinhardt Michael May 16 2006 Appendix B Moving from MFC Windows Forms 2 0 Programming 2nd ed Addison Wesley Professional Introduction to Windows Forms Visual Studio 2003 documentation Microsoft 2003 Martin Jeff 4 December 2018 Microsoft Open Sources WPF WinForms and WinUI InfoQ Retrieved 2018 12 06 Hanselman Scott 4 December 2018 Announcing WPF WinForms and WinUI are going Open Source Retrieved 2018 12 06 De Smet Bart January 4 2011 Chapter 5 C 4 0 Unleashed Sams Publishing Griffiths Ian Adams Matthew March 2003 NET Windows Forms in a Nutshell O Reilly Media p 4 a b Griffiths Ian Adams Matthew March 2003 NET Windows Forms in a Nutshell O Reilly Media pp 27 53 a b c FAQ Winforms mono project com It is very unlikely that the implementation will ever implement everything needed for full compatibility with Windows Forms The reason is that Windows Forms is not a complete toolkit and to work around this problem some of the underlying Win32 foundation is exposed to the programmer in the form of exposing the Windows message handler Sells Chris Weinhardt Michael May 16 2006 Appendix A What s New in Windows Forms 2 0 Windows Forms 2 0 Programming 2nd ed Addison Wesley Professional Noyes Brian January 12 2006 Preface Data Binding with Windows Forms 2 0 Programming Smart Client Data Applications with NET 1st ed Addison Wesley Professional Hall Gary December 27 2010 DirectX not GDI Pro WPF and Silverlight MVVM Effective Application Development with Model 2010 ed Apress p 2 Smith Josh 2007 09 05 WPF vs Windows Forms Josh Smith on WPF Retrieved 2011 08 25 WPF is not intended to replace Windows Forms Windows Forms is still alive and well and will continue to be enhanced and supported by Microsoft for years to come WPF is simply another tool for Windows desktop application developers to use when appropriate A WPF Q amp A infoq com 2014 04 03 Retrieved 2014 04 21 Windows Forms is continuing to be supported but in maintenance mode They will fix bugs as they are discovered but new functionality is off the table Allen Jonathan 2014 05 06 High DPI Improvements for Windows Forms in NET 4 5 2 InfoQ Retrieved 2015 02 10 WinForms mono project com Retrieved 2011 07 30 Support for Windows Forms 2 0 is complete At this point we are largely just fixing bugs and polishing our code WinForms mono project com Retrieved 2011 07 30 Does Winforms run on OSX Yes as of Mono 1 9 Winforms has a native OSX driver that it uses by default de Icaza Miguel 2011 03 07 GDC 2011 Retrieved 2011 07 30 For tools that are mostly OpenGL DirectX based use Windows Forms keeping in mind that some bug fixing or work around on their part might be needed as our Windows Forms is not actively developed Introduction to Mono on macOS mono project com Retrieved 2019 11 12 Martin Jess Windows Forms Comes to 64 bit Mac OS X Retrieved 2019 11 12 External links edit nbsp Wikibooks has a book on the topic of NET Development Foundation MSDN Building Windows Forms applications MSDN Windows Forms reference documentation MSDN Windows Forms Technical Articles Automating Windows Form with Visual Test Retrieved from https en wikipedia org w index php title Windows Forms amp oldid 1194546066, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.