Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

境界線を可変できるグリッドレイアウトのフォームを持つ.NETアプリケーションの作成

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/04/28 14:00
目次

GUIの作成(2)

C1Sizerコントロールの設定

 続いて、C1Sizerコントロールの設定を行います。ここでは、LabelコントロールとButtonコントロールを配置した領域の境界線をドラッグできるようにして、C1Sizerコントロールの背景をグラデーションで塗りつぶします。

 ① C1Sizerコントロールのスマートタグから「グラデーションの編集」をクリックします。「C1Sizerグラデーションエディタ」が表示されますので、次のプロパティを設定します。

プロパティ 設定値
背景色 Turquoise
背景色2 DarkGreen
モード Vertical

 ② そして、「垂直方向に反転」ボタンをクリックします。これでグラデーションが作成できました。OKボタンをクリックしてエディタを閉じます。

「C1Sizerグラデーションエディタ」でグラデーションを作成
「C1Sizerグラデーションエディタ」でグラデーションを作成

 ③ もう一度スマートタグを開き、「グリッドの編集」をクリックしてグリッドエディタを開きます。

 「行」ページが表示されているので、「行18」をクリックし隣のペインにある「IsSplitter」プロパティを「True」にします。これで、Labelコントロールを配置した行の境界線を、アプリケーション実行時にドラッグできるようになります。

「行18」の「IsSplitter」プロパティを「True」にする
「行18」の「IsSplitter」プロパティを「True」にする

 ④ 「列」タブをクリックして「列0」をクリックし、「IsSplitter」プロパティを「True」にします。これで、ボタンを配置した領域の境界線をドラッグできるようになります。

「列0」の「IsSplitter」プロパティを「True」にする
「列0」の「IsSplitter」プロパティを「True」にする

 ⑤ OKボタンをクリックしエディタを閉じ、アプリケーションを実行してみます。

 スプリッターを設定した境界線がドラッグできることを確認します。

スプリッターを設定した境界線がドラッグできることを確認
スプリッターを設定した境界線がドラッグできることを確認

4つのボタンの処理

 最後に、4つのButtonコントロールのClickイベントハンドラを処理しましょう。

 これは、それぞれのダイアログボックスを呼び出し、ファイルの読み出しと保存、選択した文字列のフォントと文字色の処理を作成します。

Visual Basic
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.FileName = ""
        OpenFileDialog1.Filter = "文書ファイル|*.txt;*.rtf"

        Dim ret As DialogResult = OpenFileDialog1.ShowDialog()

        If ret = Windows.Forms.DialogResult.OK Then
            If OpenFileDialog1.FileName.Last = "t" Then
                RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
            Else
                RichTextBox1.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.RichText)
            End If
        End If

    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim ret As DialogResult = FontDialog1.ShowDialog()

        If ret = Windows.Forms.DialogResult.OK Then
            RichTextBox1.SelectionFont = FontDialog1.Font
        End If
    End Sub

    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Dim ret As DialogResult = ColorDialog1.ShowDialog()

        If ret = Windows.Forms.DialogResult.OK Then
            RichTextBox1.SelectionColor = ColorDialog1.Color
        End If
    End Sub

    Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
        SaveFileDialog1.FileName = ""
        SaveFileDialog1.Filter = "文書ファイル|*.txt;*.rtf"

        Dim ret As DialogResult = SaveFileDialog1.ShowDialog()
        If ret = Windows.Forms.DialogResult.OK Then
            RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.RichText)
        End If
    End Sub
End Class
C#
namespace GridSizer_Winform_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            openFileDialog1.Filter = "文書ファイル|*.txt;*.rtf";

            DialogResult ret = openFileDialog1.ShowDialog();

            if (ret == DialogResult.OK)
            {
                if (openFileDialog1.FileName.Last() == 't')
                {
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                }
                else
                {
                    richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.RichText);
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult ret = fontDialog1.ShowDialog();

            if (ret == DialogResult.OK)
            {
                richTextBox1.SelectionFont = fontDialog1.Font;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            DialogResult ret = colorDialog1.ShowDialog();

            if(ret == DialogResult.OK)
            {
                richTextBox1.SelectionColor = colorDialog1.Color;
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            saveFileDialog1.FileName = "";
            saveFileDialog1.Filter = "文書ファイル|*.txt;*.rtf";

            DialogResult ret = saveFileDialog1.ShowDialog();
            if (ret == DialogResult.OK)
            {
                richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
            }
        }
    }
}

まとめ

 グリッドとスプリッター機能を併せ持つC1Sizerコントロールは、アプリケーション実行時にグリッドのそれぞれの領域を変更できるので、ユーザー自身が自分の使いやすいレイアウトでアプリケーションを操作できるようになります。

 プログラマにとっても、グリッドを使ってフォームをデザインしますので、フォーム作成がかなり楽になるのではないでしょうか。



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

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

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

バックナンバー

連載:ComponentZine(ComponentOne Studio)

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5