SHOEISHA iD

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

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

ComponentZine(PlusPak)

一味違うコントロールを使った.NETアプリケーションを作る

PlusPak for Windows Forms 6.0Jを使ったエディタアプリケーションの作成(1)

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

フォームの作成その1

 では、順番にフォームを作成していきます。

フォームの設定

 フォームは、各操作を行うGcFlowLayoutContainerコントロール、RichTextBoxコントロール、カラーピッカーの3つのエリアに分けて作成します。

 カラーピッカーのエリアは[文字色の設定]ボタンを押すと広がり、OKボタンを押すと縮小するように、フォームのHeightプロパティを操作します。したがって、フォームはユーザーがサイズ変更できないように設定しておきます。また、LoadイベントハンドラでHeightプロパティを440に設定しておきます。

Visual Basic
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Height = 440
End Sub
C#
private void Form1_Load(object sender, EventArgs e)
{
    this.Height = 440;
}

GcFlowLayoutContainerコントロールの配置

 フォームの上部にGcFlowLayoutContainerコントロールを配置します。このコントロールは、Visual Studio標準のフローレイアウトパネルコントロールの機能に、子コントロールへのラベルの追加と立体表示機能を追加したコントロールで、GradientEffectプロパティによる背景のグラデーションと、PatternEffectプロパティによる模様も設定できます。

 今回はコントロールを横一列に配置するのに使用します。DockプロパティをTopに設定し、フォームの上部に固定します。

GcFontPickerとNumericUpDownコントロールの配置

 ここには、最初にGcFontPickerとNumericUpDownコントロールを配置します。GcFontPickerコントロールはフォントの選択に、NumericUpDownコントロールはフォントサイズを選択するのに使用します。

 GcFontPickerコントロールはフォント入力専用のコントロールで、Microsoft Office 2007のツールバーにあるフォントピッカーと同様の機能を提供します。このコントロールは、使用するコンピュータに組み込まれているフォントを自動的に取得してリスト表示するとともに、お気に入りのフォントや最近使用したフォントの設定、またはフォントに説明を付けることができます。さらに、文字の種類によって一覧に表示するフォントを絞り込むことも可能です。

GcFontPickerコントロールの実行画面(ヘルプファイルより抜粋)
GcFontPickerコントロールの実行画面(ヘルプファイルより抜粋)

 ユーザーがリストからフォントを選択する、あるいはエディット部分に入力すると、コントロールにはSelectedFontChangedイベントが発生します。そこで、このイベントハンドラで選択したフォントをRichTextBoxコントロールの入力文字列に適用する処理を作成します。

 ユーザーがリストからフォントを選択する、あるいはエディット部分に入力したフォントを取得するには、SelectedFontInfoプロパティを使用します。このプロパティは、フォント関連情報をカプセル化するFontInfoオブジェクトを返してきます。そこで、このオブジェクトをRichTextBoxコントロールで選択されている文字列に適用します。

 RichTextBoxコントロールに新しいフォントを適用するには、まずRichTextBoxクラスのSelectionFontプロパティを使用します。このとき、フォーム起動時のフォントサイズも一緒に適用しないと実行時エラーが発生するので、ToFontメソッドで9ポイントを設定しておきます。このToFontメソッドは、現在のFontInfoと指定したサイズを使用して、新しいFontオブジェクトを作成します。これを、RichTextBoxコントロールのSelectionFontプロパティに代入します。

 また、NumericUpDownコントロールはフォントサイズを設定します。動作範囲は1から100までとし、初期値でValueプロパティに9をセットしておきます。

Visual Basic
Public fsize As Single = 9
Private Sub GcFontPicker1_SelectedFontChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GcFontPicker1.SelectedFontChanged
    RichTextBox1.SelectionFont = GcFontPicker1.SelectedFontInfo.ToFont(fsize)
End Sub
C#
Single fsize = 9;
private void gcFontPicker1_SelectedFontChanged(object sender, EventArgs e)
{
    richTextBox1.SelectionFont = gcFontPicker1.SelectedFontInfo.ToFont(fsize);
}

 ユーザーがNumericUpDownコントロールをクリックするとValueChangedイベントが発生するので、このイベントハンドラで新しいFontオブジェクトをRichTextBoxコントロールの選択文字列に設定します。設定方法は、GcFontPickerコントロールと同じです。

Visual Basic
Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
    fsize = NumericUpDown1.Value
    RichTextBox1.SelectionFont = GcFontPicker1.SelectedFontInfo.ToFont(fsize)
End Sub
C#
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    fsize = (Single)numericUpDown1.Value;
    richTextBox1.SelectionFont = gcFontPicker1.SelectedFontInfo.ToFont(fsize);
}

GcButtonとGcColorPickerコントロールの配置

 今度は、RichTextBoxコントロールで選択した文字列の文字色を変える処理を作成します。これには、GcColorPickerコントロールを使用します。このコントロールは色を選択するコントロールで、カラーパレットおよび表示色からの選択と、エディタへの直接入力の3種類の色選択機能を提供します。

 ドロップダウンボタンを押すとWindowsのアプリケーションでおなじみのカラーパレットが表示され、テーマや最近使用した色、もしくは利用可能な表示色から1色を選ぶことができます。エディタ部分には、RGB値やWebでの色の名称を直接入力できます。

 ピッカーボタンを押すと、実行中の自分自身のフォームだけでなく他のアプリケーションも含め、デスクトップ上に表示されているすべての色から1色をピックアップできます。ピックされた色は、エディタ部分にRGB値とその色が表示されます。GcColorPickerコントロールで選択した色情報は、ColorオブジェクトとしてSelectedColorプロパティに格納されます。

GcColorPickerコントロールの各部の名称(ヘルプファイルより抜粋)
GcColorPickerコントロールの各部の名称(ヘルプファイルより抜粋)(

 このプログラムでは、GcColorPickerとPictureBox、GcButtonコントロールをフォーム下部に配置しています。フォームのサイズを小さくして通常は隠し、フォーム上部の「文字色の設定」ボタンを押すとフォームを下方に広げ、表示されるようにしました。

 GcColorPickerコントロールの横には、グラフィックスアプリケーションで作成したグラデーションの画像をPictureBoxコントロールで表示し、ピッカーで色を選べるようにしています。

 また、GcColorPickerコントロールの下に配置した[OK]ボタンを押すと、このSelectedColorプロパティの値をRichTextBoxコントロールのSelectionColorプロパティに代入して、選択した文字列の文字色を変更します。フォームのHeightプロパティを440に設定して、GcColorPickerコントロールなどを隠すようにしています。なお、[OK]ボタンと[文字色の設定]ボタンは、ボタンのGradientEffectプロパティを使用して、ボタン表面の色をグラデーションにしています。

Visual Basic
Private Sub GcButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GcButton1.Click
    Me.Height = 580
End Sub
    
Private Sub GcButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GcButton3.Click
    RichTextBox1.SelectionColor = GcColorPicker1.SelectedColor
    Me.Height = 440
End Sub
C#
private void gcButton1_Click(object sender, EventArgs e)
{
    this.Height = 580;
}

private void gcButton3_Click(object sender, EventArgs e)
{
    this.richTextBox1.SelectionColor = gcColorPicker1.SelectedColor;
    this.Height = 440;
}

次のページ
フォームの作成その2

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4637 2009/12/08 19:49

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング