日期:2014-05-17  浏览次数:20958 次

关于窗体控件的两个小问题!
Question01:
    我查了一下MSDN ,发现 ColorDialog的 "AnyColor"属性是否允许在"BasicColor"中显示可用的颜色,
但是不知道具体是什么意思,因为不管是 设置其值为 true 或 false,都一样 显示!

Question02:

如下代码:

     代码01
private void InitializeComponent() {
            this.richtxt = new System.Windows.Forms.RichTextBox();
            this.btnSetColor = new System.Windows.Forms.Button();
            this.colorD = new System.Windows.Forms.ColorDialog();
            this.SuspendLayout();
            // 
            // [color=#0000FF]richtxt  (RichTextBox)

            // 
            this.richtxt.Location = new System.Drawing.Point(12, 12);
            this.richtxt.Name = "richtxt";
            this.richtxt.Size = new System.Drawing.Size(268, 180);
            this.richtxt.TabIndex = 0;
            this.richtxt.Text = "";[/color]

问题:
这是我通过"F11"逐步运行的一段代码(初始化控件),
我想问的是,对于 RichTextBox(); 它是怎么记录 可视化控件的 Properties 中用户是否改变,我知道对于以上代码:
            (代码02)
            this.richtxt.Location = new System.Drawing.Point(12, 12);
            this.richtxt.Name = "richtxt";
            this.richtxt.Size = new System.Drawing.Size(268, 180);
            this.richtxt.TabIndex = 0;
            this.richtxt.Text = "";

这只是RichTextBox中 Properties属性中的一部分属性,这大家都知道,也就是说,这不是RichTextBox默认的属性.
所以我不懂的是,在 InitializeComponent() 方法中的 代码02,它是怎么知道 用户只是修改 代码02 中的(默认)属性?

------解决方案--------------------
反射获取属性的[DefaultValue] Attribute和你的属性比较。