.net 如何在winforms的设计模式下执行代码
我想在设计器中打开winform时执行代码。特别是,我希望设计器自动调整工作表单的大小,使其占屏幕的百分比。与此类似:.net 如何在winforms的设计模式下执行代码,.net,vb.net,winforms,windows-forms-designer,designer,.net,Vb.net,Winforms,Windows Forms Designer,Designer,我想在设计器中打开winform时执行代码。特别是,我希望设计器自动调整工作表单的大小,使其占屏幕的百分比。与此类似: pForm.Size = New Drawing.Size(MyScreen.WorkingArea.Width * 0.75, MyScreen.WorkingArea.Height * 0.75) 除了手动修改InitializeComponent例程之外,还有一种方法。。。无论如何,这是一个坏主意,我不想将每种形式的size属性设置为静态值 感谢您的帮助(VB.NET)
pForm.Size = New Drawing.Size(MyScreen.WorkingArea.Width * 0.75, MyScreen.WorkingArea.Height * 0.75)
除了手动修改InitializeComponent例程之外,还有一种方法。。。无论如何,这是一个坏主意,我不想将每种形式的size属性设置为静态值
感谢您的帮助(VB.NET)作为在表单设计模式下运行代码的选项,您可以将代码放入表单的基类中 放入表单基类的代码将在继承表单的设计模式下运行。所以,如果您想在表单的设计模式下运行代码,可以创建一个基本表单并从该表单继承。然后将代码放入基窗体的方法中 示例
表单
,然后将名称设置为MyBaseForm
MyBaseForm.vb
中粘贴以下代码:
Imports System.ComponentModel
Public Class MyBaseForm
Protected Overrides Sub OnSizeChanged(e As EventArgs)
If DesignMode Then
Dim s = New Size(My.Computer.Screen.WorkingArea.Width * 0.75,
My.Computer.Screen.WorkingArea.Height * 0.75)
TypeDescriptor.GetProperties(Me)("Size").SetValue(Me, s)
End If
MyBase.OnSizeChanged(e)
End Sub
End Class
InheritedForm
,然后选择MyBaseForm
作为基本表单. -- .每次打开表单时,如果要保持调整大小后得到的大小,必须设置大小。否则它会恢复到原来的尺寸。。我偶然发现了一个类似的解决方案,即创建一个不可见的自定义控件,在父控件更改时设置其父控件的大小。因此,将其放在表单上可以设置表单的大小,但您的解决方案更接近我想要的,谢谢!这个要求对我来说有点奇怪,但我假设在设计时更改大小不是xy问题。无论如何,至少现在您知道了如何在WinForms的设计模式下执行代码的一种解决方案。