Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何在winforms的设计模式下执行代码_.net_Vb.net_Winforms_Windows Forms Designer_Designer - Fatal编程技术网

.net 如何在winforms的设计模式下执行代码

.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)

我想在设计器中打开winform时执行代码。特别是,我希望设计器自动调整工作表单的大小,使其占屏幕的百分比。与此类似:

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的设计模式下执行代码的一种解决方案。