SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

WPFアプリケーションにテキストブロックのプロパティ変更機能を実装する

ComponentOne Studioを活用したWindowsフォームアプリケーションの作成

  • このエントリーをはてなブックマークに追加

GUIの作成 2

C1PropertyGridコントロールの切り替え表示処理

 氏名のTextBlockコントロールを右クリックすると、C1PropertyGridコントロールの表示プロパティをそのコントロールのプロパティに切り替える処理を作成します。この処理は、ビハインドコードで行います。

 すでに、TextBlockコントロールの右クリックのイベントハンドラは作成されていますので、この中のカラーピッカー処理コードと入れ替えます。処理としては、右クリックされたTextBlockコントロールのNameプロパティを取得し、これによってC1PropertyGridコントロールのVisibilityプロパティを切り替えます。

Visual Basic
Private Sub TextBlock_MouseRightButtonDown(sender As System.Object, e As System.Windows.Input.MouseButtonEventArgs)

    Select Case sender.name
        Case "TextBlock2"
            C1PropertyGrid1.Visibility = Windows.Visibility.Visible
            C1PropertyGrid2.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid3.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid4.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid5.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid6.Visibility = Windows.Visibility.Hidden

        Case "TextBlock3"
            C1PropertyGrid2.Visibility = Windows.Visibility.Visible
            C1PropertyGrid1.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid3.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid4.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid5.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid6.Visibility = Windows.Visibility.Hidden

        Case "TextBlock4"
            C1PropertyGrid3.Visibility = Windows.Visibility.Visible
            C1PropertyGrid1.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid2.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid4.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid5.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid6.Visibility = Windows.Visibility.Hidden

        Case "TextBlock5"
            C1PropertyGrid4.Visibility = Windows.Visibility.Visible
            C1PropertyGrid1.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid2.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid3.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid5.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid6.Visibility = Windows.Visibility.Hidden

        Case "TextBlock6"
            C1PropertyGrid5.Visibility = Windows.Visibility.Visible
            C1PropertyGrid1.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid2.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid3.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid4.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid6.Visibility = Windows.Visibility.Hidden

        Case "TextBlock7"
            C1PropertyGrid6.Visibility = Windows.Visibility.Visible
            C1PropertyGrid1.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid2.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid3.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid4.Visibility = Windows.Visibility.Hidden
            C1PropertyGrid5.Visibility = Windows.Visibility.Hidden
    End Select
End Sub
C#
 private void TextBlock_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    TextBlock tb = (TextBlock)sender;
            
    switch(tb.Name)
    {
        case "TextBlock2":
            C1PropertyGrid1.Visibility = System.Windows.Visibility.Visible;
            C1PropertyGrid2.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid3.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid4.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid5.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid6.Visibility = System.Windows.Visibility.Hidden;
            break;

        case "TextBlock3":
            C1PropertyGrid2.Visibility = System.Windows.Visibility.Visible;
            C1PropertyGrid1.Visibility = System.Windows.Visibility.Visible;
            C1PropertyGrid3.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid4.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid5.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid6.Visibility = System.Windows.Visibility.Hidden;
            break;

        case "TextBlock4":
            C1PropertyGrid3.Visibility = System.Windows.Visibility.Visible;
            C1PropertyGrid2.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid1.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid4.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid5.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid6.Visibility = System.Windows.Visibility.Hidden;
            break;

        case "TextBlock5":
            C1PropertyGrid4.Visibility = System.Windows.Visibility.Visible;
            C1PropertyGrid2.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid3.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid1.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid5.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid6.Visibility = System.Windows.Visibility.Hidden;
            break;

        case "TextBlock6":
            C1PropertyGrid5.Visibility = System.Windows.Visibility.Visible;
            C1PropertyGrid2.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid3.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid4.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid1.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid6.Visibility = System.Windows.Visibility.Hidden;
            break;

        case "TextBlock7":
            C1PropertyGrid6.Visibility = System.Windows.Visibility.Visible;
            C1PropertyGrid2.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid3.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid4.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid5.Visibility = System.Windows.Visibility.Hidden;
            C1PropertyGrid1.Visibility = System.Windows.Visibility.Hidden;
            break;
    }
}

まとめ

 C1PropertyGridコントロールは、このようにウィンドウにレイアウトされたコントロールを、アプリケーション実行時に操作することができるコントロールです。

 面倒なダイアログボックス作成・処理なども必要なく、各コントロールへの連結やプロパティリスト作成など、とても簡単にこの機能を実装することが可能です。

 インタラクティブなアプリケーションに仕上げたいという場合は、導入を検討されてはいかがでしょうか。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7594 2014/01/27 18:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング