2017-06-25 8 views
0

私はカスタムテキストボックスを作成しています。カスタムプロパティを作成したいと思います。デザインモードで、テキストボックスプロパティに表示されるカスタムプロパティを作成します。オプションを持つコンボボックスのようなカスタムプロパティを作成するには? TextAlignプロパティの設定には、Left、Right、Centerの3つのオプションがあります。ありがとう。カスタムテキストボックスとオプション付きのカスタムプロパティ

+0

は、テキストボックスに新しいクラスに継承を作成します。次に、新しいクラスにフィーチャーを追加します。 Codeprojectsには、カスタムのC#フォームを作成する実際のコードがたくさんあります。カスタムカレンダーやカスタムコンボボックスを何度もお勧めします。これらのプロジェクトを見つける最も良い方法は、codeproject C#カスタムカレンダーのような検索でgoogleを使用することです。 codeproject検索よりもGoogleでこれらのプロジェクトを見つける方が簡単です。 – jdweng

答えて

1

オプションを持つコンボボックスのようなカスタムプロパティを作成するにはどうすればよいですか? 例は、TextAlignプロパティの設定に似ていますが、左、右、中央の3つのオプション があります。 enumタイプとプロパティを介して行われます

public class CustomTextBox : TextBox 
{ 

    public enum CustomOptions 
    { 
     Option1, 
     Option2, 
     Option3 
    } 

    private CustomOptions _CustomOption = CustomOptions.Option1; 

    public CustomOptions CustomOption 
    { 
     get 
     { 
      return _CustomOption; 
     } 
     set 
     { 
      _CustomOption = value; 
      switch(_CustomOption) 
      { 
       case CustomOptions.Option1: 
        TextAlign = HorizontalAlignment.Center; 
        ForeColor = Color.Red; 
        break; 
       case CustomOptions.Option2: 
        TextAlign = HorizontalAlignment.Right; 
        ForeColor = Color.Black; 
        break; 
       case CustomOptions.Option3: 
        TextAlign = HorizontalAlignment.Left; 
        ForeColor = Color.Blue; 
        break; 
      } 
     } 
    } 

} 
+0

多くのありがとうIdle_Mind。できます!私は列挙型を使用しています。私が見逃したのはgetとsetです。再度、感謝します。 – Zhyke

+0

こんにちは、プロパティの値を取得する方法は?私はOption2をデザインモードで設定しても常にOption1を取得します。 'public CustomTextBox():base() { switch(CustomOption) { case CustomOptions.Option1: //一部のコード break; case CustomOptions.Option2: // some code break; case CustomOptions.Option3: //一部のコード break; } } – Zhyke

+0

これは**コンストラクタです**、コントロールの作成時に一度しか呼び出されません。もちろん、デフォルト値を設定しているのはOption1だけです。別の場所からCustomOptionプロパティにアクセスすると、現在の正しい値を取得する必要があります。 –

関連する問題