Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
C# 如何使用UserControl控制MainForm的面板?_C#_Winforms - Fatal编程技术网

C# 如何使用UserControl控制MainForm的面板?

C# 如何使用UserControl控制MainForm的面板?,c#,winforms,C#,Winforms,将myUserControl添加到MainForm后。如何将myUserControl2添加到主窗体的其他面板 MainForm myMainForm; private void ButtonResort_MouseClick(object sender, MouseEventArgs e) { panelSub.Controls.Add(new myUserControl()); } 这是我尝试过的代码,它只是给了我一个错误。 “对象引用未设置为对象的实例。”问题是您的myMain

将myUserControl添加到MainForm后。如何将myUserControl2添加到主窗体的其他面板

MainForm myMainForm;

private void ButtonResort_MouseClick(object sender, MouseEventArgs e)
{
    panelSub.Controls.Add(new myUserControl());
}
这是我尝试过的代码,它只是给了我一个错误。
“对象引用未设置为对象的实例。”

问题是您的
myMainForm
从未设置过

您可以在
myUserControl
构造函数中设置它

public partial class myUserControl : UserControl
{
    MainForm myMainForm;

    public myUserControl()
    {
        InitializeComponent();
    }

    private void Button1_MouseClick(object sender, MouseEventArgs e)
    {
        myMainForm.PanelBody.Controls.Add(new myUserControl2());
    }
}
用法


问题是您的
myMainForm
从未设置过

您可以在
myUserControl
构造函数中设置它

public partial class myUserControl : UserControl
{
    MainForm myMainForm;

    public myUserControl()
    {
        InitializeComponent();
    }

    private void Button1_MouseClick(object sender, MouseEventArgs e)
    {
        myMainForm.PanelBody.Controls.Add(new myUserControl2());
    }
}
用法


问题是您的
myMainForm
从未设置过

您可以在
myUserControl
构造函数中设置它

public partial class myUserControl : UserControl
{
    MainForm myMainForm;

    public myUserControl()
    {
        InitializeComponent();
    }

    private void Button1_MouseClick(object sender, MouseEventArgs e)
    {
        myMainForm.PanelBody.Controls.Add(new myUserControl2());
    }
}
用法


问题是您的
myMainForm
从未设置过

您可以在
myUserControl
构造函数中设置它

public partial class myUserControl : UserControl
{
    MainForm myMainForm;

    public myUserControl()
    {
        InitializeComponent();
    }

    private void Button1_MouseClick(object sender, MouseEventArgs e)
    {
        myMainForm.PanelBody.Controls.Add(new myUserControl2());
    }
}
用法


作为在构造函数中传递表单的替代方法,您可以执行以下操作:

panelSub.Controls.Add(new myUserControl(this));

如果您对可重用性感兴趣,可以在构造函数中传递
表单
控件
。表单也是控件的派生。与
FindForm
相同。如果您提到
MainForm
,它是紧密耦合的。如果您使用
表单
,它可以是任何表单。通常,人们传递实际的曲面[control],在其上添加新控件。

作为在构造函数中传递表单的替代方法,您可以执行以下操作:

panelSub.Controls.Add(new myUserControl(this));

如果您对可重用性感兴趣,可以在构造函数中传递
表单
控件
。表单也是控件的派生。与
FindForm
相同。如果您提到
MainForm
,它是紧密耦合的。如果您使用
表单
,它可以是任何表单。通常,人们传递实际的曲面[control],在其上添加新控件。

作为在构造函数中传递表单的替代方法,您可以执行以下操作:

panelSub.Controls.Add(new myUserControl(this));

如果您对可重用性感兴趣,可以在构造函数中传递
表单
控件
。表单也是控件的派生。与
FindForm
相同。如果您提到
MainForm
,它是紧密耦合的。如果您使用
表单
,它可以是任何表单。通常,人们传递实际的曲面[control],在其上添加新控件。

作为在构造函数中传递表单的替代方法,您可以执行以下操作:

panelSub.Controls.Add(new myUserControl(this));

如果您对可重用性感兴趣,可以在构造函数中传递
表单
控件
。表单也是控件的派生。与
FindForm
相同。如果您提到
MainForm
,它是紧密耦合的。如果您使用
表单
,它可以是任何表单。通常,人们会传递实际的surface[control],在其上添加新控件。

是Winform应用程序吗?是的,它是Winform应用程序。编辑我的帖子并将我尝试使用的代码放在那里。您需要找到用户控件所在的表单,并将引用分配给
myMainForm
。此时,当您执行
myMainForm.PanelBody.Controls.Add(新的myUserControl2())时
您的
myMainForm
在未初始化中它是Winform应用程序吗?是的,它是Winform应用程序。编辑我的帖子并将我尝试使用的代码放在那里。您需要找到用户控件所在的表单,并将引用分配给
myMainForm
。此时,当您执行
myMainForm.PanelBody.Controls.Add(新的myUserControl2())时
您的
myMainForm
在未初始化中它是Winform应用程序吗?是的,它是Winform应用程序。编辑我的帖子并将我尝试使用的代码放在那里。您需要找到用户控件所在的表单,并将引用分配给
myMainForm
。此时,当您执行
myMainForm.PanelBody.Controls.Add(新的myUserControl2())时
您的
myMainForm
在未初始化中它是Winform应用程序吗?是的,它是Winform应用程序。编辑我的帖子并将我尝试使用的代码放在那里。您需要找到用户控件所在的表单,并将引用分配给
myMainForm
。此时,当您执行
myMainForm.PanelBody.Controls.Add(新的myUserControl2())时您的
myMainForm
未初始化