首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UI设计器覆盖我自己继承控件的属性

UI设计器覆盖我自己继承控件的属性
EN

Stack Overflow用户
提问于 2016-07-19 10:04:14
回答 2查看 133关注 0票数 0

我通过从System.Windows.Forms.TableLayoutPanel继承来创建自己的控件。我需要把行号定为1。

代码语言:javascript
复制
public class KTextPanel : TableLayoutPanel
{
    public KTextPanel()
    {
        ColumnCount = 1;
        RowCount = 1;
    }
}

因此,我在新控件的构造函数中实现了它。问题是,当我在UI设计器上生成新控件的新实例时,UI设计器会自动覆盖blah.designer.cs中的行数和行数。

代码语言:javascript
复制
// 
// kTextPanel8
// 
this.kTextPanel8.AANAME = "Force Pickup";
this.kTextPanel8.AANODENAME = "picker";
this.kTextPanel8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.kTextPanel8.ColumnCount = 2;
this.kTextPanel8.RowCount = 2;

它看起来2是TableLayoutPanel的默认值。如何防止UI设计人员完成这个自动例程?

EN

回答 2

Stack Overflow用户

发布于 2016-07-19 10:54:01

我认为您可以重写设计器,但是在调用InitializeComponent()之后在表单构造函数中设置您想要的值。或者进入设计器并使用属性窗口在那里设置控件的属性,应该更改设计器生成的内容。

票数 0
EN

Stack Overflow用户

发布于 2016-07-19 11:19:27

使用DefaultValue属性

像这样的事情应该有效:

代码语言:javascript
复制
public class KTextPanel : TableLayoutPanel
{
    public KTextPanel()
    {
        ColumnCount = 1;
        RowCount = 1;
    }

    [DefaultValue(1)]
    public new int ColumnCount
    {
        get
        {
            return base.ColumnCount;
        }
        set
        {
            base.ColumnCount = value;
        }
    }

    //... same for RowCount
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38455369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档