【问题标题】:i want to dock User Control我想停靠用户控制
【发布时间】:2011-12-06 10:29:00
【问题描述】:

我已经制作了用户控件,并且在该用户控件内部分别有两个按钮,名称为停靠和关闭。

现在我想在单击按钮停靠时将用户控件停靠在左侧,并在单击按钮关闭时关闭用户控件..

(我试图通过制作用户控制对象来使用,但没有帮助.....)

void button1_Click(object sender, EventArgs e) {
    Container1 obj = new Container1();
    if (obj.Dock != DockStyle.None) {
        obj.Dock = DockStyle.None;
        MessageBox.Show("Dockstyle is None");
    }
    else {
        obj.Dock = DockStyle.Left;
        MessageBox.Show("Dockstyle is Left");
    }
}

【问题讨论】:

    标签: c# winforms visual-studio-2010 user-controls


    【解决方案1】:

    obj 需要是对您已经存在的 userControl 实例的引用(在您的情况下,this 关键字)。您在这里创建了一个新的而不是 Container1

    private void button1_Click(object sender, EventArgs e)
    {
            if (this.Dock != DockStyle.None)
            {
                this.Dock = DockStyle.None;
                MessageBox.Show("Dockstyle is None");
            }
            else
            {
                this.Dock = DockStyle.Left;
                MessageBox.Show("Dockstyle is Left");
            }
    }
    

    【讨论】:

      【解决方案2】:

      您不想创建容器然后在该容器上设置DockStyle。相反,您需要设置UserControl 本身的DockStyle

      【讨论】:

      • 我必须停靠我的用户控件而不是按钮;;;
      • 这种情况下,你需要设置UserControl本身的DockStyle,而不是一些动态创建的容器。我已经编辑了我的答案以反映这一点。
      • 我的用户控件名称是 container1;;;
      • 无论名称是什么,控件都需要是父级的(无论您是动态地还是静态地执行此操作)。只有这样DockStyle 才会有任何效果。
      猜你喜欢
      • 2012-01-13
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      相关资源
      最近更新 更多