每个运行的窗口都使用System.Windows.Forms.Form吗?

时间:2013-01-08 00:15:06

标签: windows forms system

每个运行的窗口都使用System.Windows.Forms.Form吗?

标题说明了。从Java到C ++,从Visual Basic到控制台应用程序。每个编译的窗口都使用类 System.Drawing.Forms.Form 吗?

2 个答案:

答案 0 :(得分:1)

No.

在.NET中,System.Windows.Forms(基本上)只是一个绘制窗口的工具,但它不是唯一的工具。其他语言有自己的工具; Java有Swing库,Python和Perl有几个其他的GUI工具包,每个工具包都以不同的方式做事。控制台应用程序使用完全不同的方式呈现信息。如何绘制事物不仅取决于语言,还取决于使用的GUI API。例如,可以使用C ++和DirectX以及自定义绘图例程完全绘制窗口;这些根本不会使用.NET,也不会使用.NET使用的任何底层工具。可以使用C ++和Open GL绘制相同的窗口;可能会显示相同的数据,但调用它来绘制它的例程会有所不同。事实上,如果你真的是受虐狂,你可以用汇编完成所有的绘画!

答案 1 :(得分:0)

简答字号 System.Windows.Forms.Form是WinForms .Net库使用的抽象,用于与操作系统提供的实际Windows进行交互。

其他语言有其他抽象:Java可以使用Swing或AWT或任何其他提供不同方式来绘制表单的UI库。

同样,C ++可以使用OS提供的对象(即MFC库)进行抽象,或者直接使用Windows API。

所有的UI库最终都需要使用Windows API来绘制他们的窗口,但并非所有这些都在相同的范围内完成,因此.Net的UI库将使用一些与Java或C ++相同的API调用。 UI库。

如果我找到关于UI和UI库如何在Windows上工作的一个很好的解释,我会更新这个答案。

我记得不久前读过一篇不错的文章,其中有一些历史记录和Windows 8中的变化,但不记得在哪里。