- PR -

ButtonのUseVisualStyleBackColorをfalseにする方法

1
投稿者投稿内容
otf
ベテラン
会議室デビュー日: 2006/08/04
投稿数: 91
投稿日時: 2007-04-09 19:58
UseVisualStyleBackColorのデフォルト値がfalseのButtonを作ろうと思い
下記のようなクラスを書きました。

public class CustomButton : Button
{
public CustomButton()
{
UseVisualStyleBackColor = false;
}
}

ですが、フォームに貼り付けるとDesignerソースの中で
this.customButton1.UseVisualStyleBackColor = true;
と記述されてしまいます。
この解決方法をご存じの方がいたらぜひご教授いただきたいです。
よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-04-09 21:06
引用:

otfさんの書き込み (2007-04-09 19:58) より:

ですが、フォームに貼り付けるとDesignerソースの中で
this.customButton1.UseVisualStyleBackColor = true;
と記述されてしまいます。


UseVisualStyleBackColor プロパティが存在するということは C#2.0 ですよね?
おそらく、デザイナによって初期化されているのだと思います。

System.Windows.Forms.Design.ControlDesigner.InitializeNewComponent メソッド
あたりを調べると良いでしょう。(手元に環境がないため未検証です)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
otf
ベテラン
会議室デビュー日: 2006/08/04
投稿数: 91
投稿日時: 2007-04-09 21:25
じゃんぬねっとさん
ご返答ありがとうございます。

C#2.0です。
環境を書くのを忘れていました。
失礼いたしました。

ご示しの通りSystem.Windows.Forms.Design.ControlDesigner.InitializeNewComponent
がそれでした。

さきほどのコードを下記のように修正したらうまくいきました。
素早い回答ありがとうございました。

[Designer(typeof(CustomButtonDesigner))]
public class CustomButton : Button
{
public CustomButton()
{
UseVisualStyleBackColor = false;
}
}

public class CustomButtonDesigner : ControlDesigner
{
public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
{
defaultValues["UseVisualStyleBackColor"] = false;
base.InitializeNewComponent(defaultValues);
}
}
1

スキルアップ/キャリアアップ(JOB@IT)