2012-03-23 1 views
2

私はライブラリを持っています。図書館では、Greenの背景色とテキストを持つボタンがGo Greenとなっています。デザイナーのボタンのテキストセットを避ける方法

私はwinformプロジェクトを作成し、Goグリーンボタンをフォームにドラッグしました。アプリケーションを実行すると、ボタンの色が緑色に変わっていますが、テキストはbutton1(クラスライブラリの名前)と表示されています。私はInitializeComponent()方法は、フォームのコンストラクタで呼び出されるので、それが起こっていることを発見し

public class button : Button 
{ 
    public Seats() 
    { 
     button.BackColor = Color.Green; 
     button.Text = "Go Green"; 
    } 
} 

マイライブラリは次のようになります。 designer.csでは、

と呼ばれています。どうすればそれが起こらないようにすることができますか?クラスライブラリからテキストを表示したい。

注:上記のコードをdesigner.csから手動で削除したところ、すべて正常に機能していました。

答えて

4

最も簡単な方法 - オーバーライド・ボタンのTextプロパティと、それはデザイナーのシリアル化に隠されます

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public override string Text 
{ 
    get { return base.Text; } 
    set { base.Text = value; } 
} 

Designerは、デフォルトのボタン名を追加しますが、アプリケーションをビルドするとき、あなたのテキストが表示されます。

UPDATE:デザイナーがボタンのデフォルトのプロパティ値を提供する別の(難しい)方法です。この場合、完全版の.netフレームワーク(クライアントプロファイルバージョンではありません)でのみ利用可能な参照System.Design.dllが必要です。

まず:あなたのボタンのコントロールデザイナーを作成

public class GoGreenButtonDesigner : System.Windows.Forms.Design.ControlDesigner 
{ 
    public override void OnSetComponentDefaults() 
    { 
     base.OnSetComponentDefaults(); 
     Control.Text = "Go Green"; 
    } 
} 

最終:カスタムボタンのクラスこれだけです

[Designer(typeof(GoGreenButtonDesigner))] 
public class GoGreenButton : Button 
{ 
    //... 
} 

にデザイナー属性を追加します。ボタンをフォームにドラッグすると、追加のコンパイルなしにデフォルトのテキスト「Go Green」が表示されます。

+0

素晴らしいヘルプ..... – Sandy

関連する問題