.NET Windows Forms 面试题






2.61/5 (10投票s)
这篇文章提供了一些关于 .NET windows forms 的面试问题
.NET Windows Forms
- 写一个简单的 Windows Forms MessageBox 语句。
- System.Windows.Forms.MessageBox.Show
- ("你好,Windows Forms");
- 你可以在不指定命名空间的情况下编写一个类吗? 默认情况下它属于哪个命名空间??
是的,你可以,然后该类属于没有名称的全局命名空间。对于商业产品,你自然不会希望使用全局命名空间。 - 你正在设计一个带有窗口和几个小部件的 GUI 应用程序。然后用户调整应用程序窗口的大小,看到很多灰色空间,而小部件保持在原地。问题是什么? 应该使用锚定进行正确的调整大小。 否则,一个小部件在表单上的默认属性是左上角,因此在调整大小时它会保持在相同位置。
- 你如何保存 Windows Forms 应用程序的所需属性? .NET 中的 .config 文件通过 API 得到支持,以允许存储和检索信息。 它们只不过是简单的 XML 文件,有点像 Win32 应用程序之前的 .ini 文件。
- 那么,你如何从 XML .config 文件中检索 .NET 应用程序的自定义属性? 初始化 AppSettingsReader 类的一个实例。 调用 AppSettingsReader 类的 GetValue 方法,传入属性的名称和预期的类型。 将结果分配给适当的变量。
- 你可以自动化这个过程吗? 在 Visual Studio 中可以,使用动态属性进行自动 .config 创建、存储和检索。
- 当一个密集的后台进程接管时,我的进度条会冻结,对话框窗口显示为空白。 是的,你应该对你的 GUI 进行多线程处理,任务栏和主表单为一个线程,后台进程为另一个线程。
- 部署 Windows Forms 应用程序最安全的方法是什么? Web 部署:用户总是下载最新版本的代码;程序在安全沙箱内运行,正确编写的应用程序不需要额外的安全权限。
- 为什么在处理 Visual Studio 时将代码插入到 InitializeComponent 方法中不是一个好主意? 设计器可能会将其删除; InitializeComponent 内的大部分代码是自动生成的。
- WindowsDefaultLocation 和 WindowsDefaultBounds 有什么区别? WindowsDefaultLocation 告诉表单启动在一个由操作系统选择的位置,但具有内部指定的大小。 WindowsDefaultBounds 将大小和起始位置的选择委托给操作系统。
- Move 和 LocationChanged 有什么区别? Resize 和 SizeChanged 有什么区别? 两种方法的作用相同,Move 和 Resize 是从 VB 中采用的名称,以方便迁移到 C#。
- 你将如何创建一个非矩形窗口,比如一个椭圆? 创建一个矩形表单,将 TransparencyKey 属性设置为与 BackColor 相同的值,这将有效地使表单的背景透明。然后将 FormBorderStyle 设置为 FormBorderStyle.None,这将删除表单的轮廓和内容。
- 你如何在菜单设计器中创建一个分隔符? 连字符“-”即可。此外,与号“&”将为下一个字母添加下划线。
- 锚定与停靠有什么不同? 锚定将组件视为具有绝对大小并根据父表单调整其位置。 停靠将组件位置视为绝对的,并忽略组件大小。 因此,如果状态栏必须始终位于底部,无论如何,请使用停靠。 如果一个按钮应该在右上角,但随着表单的调整大小而改变其位置,请使用锚定。