Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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#winforms将面板中的usercontrol更改为方法_C#_Winforms_User Controls - Fatal编程技术网

C#winforms将面板中的usercontrol更改为方法

C#winforms将面板中的usercontrol更改为方法,c#,winforms,user-controls,C#,Winforms,User Controls,我试图在单击按钮时创建一个更改usercontrol的方法 用户控制 namespace LogAnalyzer { public partial class UserSettings : UserControl { private static UserSettings _instance; public static UserSettings Instance { get {

我试图在单击按钮时创建一个更改usercontrol的方法

用户控制

namespace LogAnalyzer
{
    public partial class UserSettings : UserControl
    {
        private static UserSettings _instance;
        public static UserSettings Instance
        {
            get
            {
                if (_instance == null)
                    _instance = new UserSettings();
                return _instance;
            }
        }
        public UserSettings()
        {
            InitializeComponent();
        }

        private void btnUnpackPath_Click(object sender, EventArgs e)
        {
            flowLayoutPanel1.Hide();
        }
    }
}
我的表格

namespace LogAnalyzer
{
    public partial class LogAnalyzerMain : Form
    {
        public LogAnalyzerMain()
        {
            InitializeComponent();
        }

        private void ChangeInstance(Control tab) {
            if (!panelDisplay.Controls.Contains(tab))
            {
                panelDisplay.Controls.Add(tab);
                tab.Dock = DockStyle.Fill;
            }
            tab.BringToFront();
        }

        private void btnSettings_Click(object sender, EventArgs e)
        {
            ChangeInstance(UserSettings);
        }
    }
}
它在我的表单的这一行中给了我一个错误('UserSettings'是一个类型,在给定的上下文中无效)


您正在传递类本身,但该方法接受它的一个实例,因为您有一个singleton属性,您可以使用它:

ChangeInstance(UserSettings.Instance);

否则,您必须将实例存储在某个位置,例如在
LogAnalyzerMain
as字段中,或者如果它是表单上的控件,您可以使用
this.Controls.OfType().First()

Try
UserSettings.instance
,并且此错误是正确的,它需要的是实例,而不是类型。应该是
ChangeInstance(UserSettings.Instance)
ChangeInstance(UserSettings.Instance);