0

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

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

4

2 回答 2

1

不。

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

于 2013-01-08T00:44:19.957 回答
0

简短回答否。 System.Windows.Forms.Form 是 WinForms .Net 库用来与操作系统提供的实际 Windows 交互的抽象。

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

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

所有的 UI 库最终都需要使用 Windows API 来绘制它们的窗口,但并不是所有的 UI 库都使用相同的程度,因此 .Net 的 UI 库将使用一些与 Java 或 C++ 的 UI 库相同的 API 调用。

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

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

于 2013-01-08T00:46:05.697 回答