説明文と画像の表示処理
このプログラムでは、例えば、TreeViewコントロールのノードにある「雪割草」という山野草の品種名をクリックすると、RichTextBoxコントロールに説明文を、PictureBoxコントロールに画像を表示します。
サンプルプログラムなので、そんなに凝ったものではありませんが、説明文はrtf形式のテキストで、画像はJPEG形式のファイルでそれぞれ作成され、プログラムの実行ファイル(exeファイル)があるフォルダ内の「App_Data」というサブフォルダに格納されます。


データの読み込み処理
データと写真を読み込む処理は、TreeViewコントロールのノードがクリックされたタイミングで行います。
ノードをクリックすると、TreeViewコントロールには「AfterSelect」というイベントが発生します。このイベントハンドラの引数「e」から、クリックされたノードの文字を読み取り、どのノードがクリックされたのかを把握します。
- まず、Private変数「my_pass」を宣言し、フォームのLoadイベントハンドラでApplicationオブジェクトのStartupPathプロパティを参照して、実行プログラムのあるフォルダのディレクトリを把握します。
- 次に、TreeViewコントロールのAfterSelectイベントハンドラで、イベントが発生したNodeオブジェクトのTextプロパティを読み取り、処理を分岐します。各分岐処理では、フォルダ「App_Data」からrtfファイルとJPEGファイルを読み込んで、それぞれRichTextBoxとPictureBoxコントロールで表示します。
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
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;
}
}
