【问题标题】:Does Visual Inheritance work in VS2008?视觉继承在 VS2008 中有效吗?
【发布时间】:2009-01-14 02:11:23
【问题描述】:

我有一个基本形式。我将 Ok 和 Cancel 按钮放在表单的右下角,并将它们锚定在 Bottom 和 Right。

继承的表单不支持确定和取消按钮的锚属性。以下是重现的确切步骤。

1- 创建一个带有位于底部/右侧的按钮的基本表单。将其固定在底部,对。 3- 创建一个继承自步骤 1 中创建的基本表单的新表单。 4-增加(在设计器中)第二个表单的高度或宽度。 5- 你会看到按钮没有完全移动,因此破坏了它的锚属性。

是我做错了什么,还是 VS2008 根本不遵守基本表单上控件的锚属性?

谢谢。

【问题讨论】:

    标签: winforms visual-studio-2008 visual-inheritance


    【解决方案1】:

    嗯,按照你的步骤,完美地工作......

    确保继承的表单没有覆盖设计器中的某些属性... 我的“继承形式”只有这个:

    private void InitializeComponent()
    {
        this.SuspendLayout();
        // 
        // Form2
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.ClientSize = new System.Drawing.Size(296, 154);
        this.Name = "Form2";
        this.ResumeLayout(false);
    
    }
    

    【讨论】:

      【解决方案2】:

      请注意正在发生一些非常顽皮的事情。基类的私有字段的属性正在发生变化(Location 属性),这完全违反了 .NET 可访问性规则。这在一定程度上是可行的,但是一旦你运行你的项目就会耗尽气体。修复很简单,将按钮的 Modifiers 属性从 Private 更改为 Protected。

      【讨论】:

        【解决方案3】:

        它对我有用。

        您如何创建继承的表单?我去

        1. 构建
        2. 新增 -> Windows 窗体
        3. 选择 Windows 窗体
        4. 选择继承的表单
        5. 选择原始表单

        按钮按预期移动。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-01
          • 1970-01-01
          • 2011-11-04
          • 2017-11-22
          • 2011-10-05
          • 2011-03-05
          • 1970-01-01
          • 2018-12-13
          相关资源
          最近更新 更多