SHOEISHA iD

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

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

ComponentZine(ComponentOne)

サイズ変更可能な複数のフレームを持った.NETアプリケーションの作成

ComponentOne Studio Enterprise 2010JのSizer for Windows Formsコンポーネントを使ったアプリケーションの作成

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

説明文と画像の表示処理

 このプログラムでは、例えば、TreeViewコントロールのノードにある「雪割草」という山野草の品種名をクリックすると、RichTextBoxコントロールに説明文を、PictureBoxコントロールに画像を表示します。

 サンプルプログラムなので、そんなに凝ったものではありませんが、説明文はrtf形式のテキストで、画像はJPEG形式のファイルでそれぞれ作成され、プログラムの実行ファイル(exeファイル)があるフォルダ内の「App_Data」というサブフォルダに格納されます。

rtf形式のファイルとJPEG画像
rtf形式のファイルとJPEG画像
実行ファイル(exeファイル)のサブフォルダ「App_Data」に格納
実行ファイル(exeファイル)のサブフォルダ「App_Data」に格納

データの読み込み処理

 データと写真を読み込む処理は、TreeViewコントロールのノードがクリックされたタイミングで行います。

 ノードをクリックすると、TreeViewコントロールには「AfterSelect」というイベントが発生します。このイベントハンドラの引数「e」から、クリックされたノードの文字を読み取り、どのノードがクリックされたのかを把握します。

  1. まず、Private変数「my_pass」を宣言し、フォームのLoadイベントハンドラでApplicationオブジェクトのStartupPathプロパティを参照して、実行プログラムのあるフォルダのディレクトリを把握します。
  2. 次に、TreeViewコントロールのAfterSelectイベントハンドラで、イベントが発生したNodeオブジェクトのTextプロパティを読み取り、処理を分岐します。各分岐処理では、フォルダ「App_Data」からrtfファイルとJPEGファイルを読み込んで、それぞれRichTextBoxとPictureBoxコントロールで表示します。
Visual Basic
Public Class Form1

    Private my_pass As String
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        my_pass = Application.StartupPath
    End Sub

    Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        Select Case e.Node.Text

            Case "紅おけさ"
                Me.PictureBox1.Image = Image.FromFile(my_pass & "\App_Data\beni_okesa.jpg")
                Me.RichTextBox1.LoadFile(my_pass & "\App_Data\紅おけさ.rtf")

            Case "川蝉"
                Me.PictureBox1.Image = Image.FromFile(my_pass & "\App_Data\kawasemi.jpg")
                Me.RichTextBox1.LoadFile(my_pass & "\App_Data\川蝉.rtf")

            Case "麗人"
                Me.PictureBox1.Image = Image.FromFile(my_pass & "\App_Data\reijin.jpg")
                Me.RichTextBox1.LoadFile(my_pass & "\App_Data\麗人.rtf")

            Case "深山"
                Me.PictureBox1.Image = Image.FromFile(my_pass & "\App_Data\miyama.jpg")
                Me.RichTextBox1.LoadFile(my_pass & "\App_Data\深山.rtf")

        End Select
    End Sub
C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace my_sizer_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private string my_pass;
        private void Form1_Load(object sender, EventArgs e)
        {
            my_pass = Application.StartupPath;
        }

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            switch (e.Node.Text)
            {
                case "紅おけさ":
                    pictureBox1.Image = Image.FromFile(my_pass + "/App_Data/beni_okesa.jpg");
                    richTextBox1.LoadFile(my_pass + "/App_Data/紅おけさ.rtf");
                    break;

                case "川蝉":
                    pictureBox1.Image = Image.FromFile(my_pass + "/App_Data/kawasemi.jpg");
                    richTextBox1.LoadFile(my_pass + "/App_Data/川蝉.rtf");
                    break;

                case "麗人":
                    pictureBox1.Image = Image.FromFile(my_pass + "/App_Data/reijin.jpg");
                    richTextBox1.LoadFile(my_pass + "/App_Data/麗人.rtf");
                    break;

                case "深山":
                    pictureBox1.Image = Image.FromFile(my_pass + "/App_Data/miyama.jpg");
                    richTextBox1.LoadFile(my_pass + "/App_Data/深山.rtf");
                    break;
            }

        }

次のページ
Form2の処理

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5106 2010/04/16 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング