|
【Amazon ランキング:DVD - アニメ】
|
|
ここまでリストボックスに String 型のオブジェクトを追加してきましたが、リストボックスのアイテムの型が String 型でなく Object
型であることにお気づきになられたでしょうか?
実はリストボックスのアイテムは String 型でなくても Object 型から派生したものであれば何でも追加できます。その際に一覧に表示されるテキストは
ToString() メソッドで文字列型に変換された内容が表示されます。
ここでは、リストボックスに表示するアイテムクラス PeraonalInfo を作成して実際にどのように実装するのかを説明します。 |
|
リストボックスに登録するクラスの作成 |
まずはリストボックスに登録する PersonalInfo クラスを作成します。このときの注意点として ToString() メソッドをオーバーライドすることを忘れないでください。
[VB]
public override string ToString()
[C#]
Public Overrides Function ToString() As String
|
VB[PersonalInfo.vb] |
''' <summary>
''' 個人情報クラス
''' </summary>
''' <remarks></remarks>
Public Class PersonalInfo
Private _nameKanji As String ' 氏名漢字
Private _nameKana As String ' 氏名かな
Private _address As String ' 住所
Private _tel As String ' 電話番号
Public Sub New(ByVal nameKanji As String, ByVal nameKana As String, _
ByVal address As String, ByVal tel As String)
Me._nameKanji = nameKanji
Me._nameKana = nameKana
Me._address = address
Me._tel = tel
End Sub
Public Property NameKanji() As String
Get
Return Me._nameKanji
End Get
Set(ByVal value As String)
Me._nameKanji = value
End Set
End Property
Public Property NameKana() As String
Get
Return Me._nameKana
End Get
Set(ByVal value As String)
Me._nameKana = value
End Set
End Property
Public Property Address() As String
Get
Return Me._address
End Get
Set(ByVal value As String)
Me._address = value
End Set
End Property
Public Property Tel() As String
Get
Return Me._tel
End Get
Set(ByVal value As String)
Me._tel = value
End Set
End Property
Public Overrides Function ToString() As String
Return Me._nameKanji
End Function
End Class
|
|
C#[PersonalInfo.cs] |
using System;
using System.Collections.Generic;
using System.Text;
namespace ListBox_CS
{
/// <summary>
/// 個人情報クラス
/// </summary>
public class PersonalInfo
{
private string _nameKanji; // 氏名漢字
private string _nameKana; // 氏名かな
private string _address; // 住所
private string _tel; // 電話番号
public PersonalInfo(string nameKanji, string nameKana, string address, string tel)
{
this._nameKanji = nameKanji;
this._nameKana = nameKana;
this._address = address;
this._tel = tel;
}
public string NameKanji
{
get { return this._nameKanji; }
set { this._nameKanji = value; }
}
public string NameKana
{
get { return this._nameKana; }
set { this._nameKana = value; }
}
public string Address
{
get { return this._address; }
set { this._address = value; }
}
public string Tel
{
get { return this._tel; }
set { this._tel = value; }
}
public override string ToString()
{
return this._nameKanji;
}
}
}
|
|
フォームの作成 |
|
Form3を作成して ListBox, Label をはりつけます。プロパティの内容はすべてデフォルトのままです。
ListBox:[listBox1]
Label:[Label1]
Label:[Label2]
|
|
VB[Form3.vb] |
Public Class Form3
Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' リストボックスボックスアイテム追加
Me.listBox1.Items.Add(New PersonalInfo("一郎", "いちろう", "沖縄", "11-1111-1111"))
Me.listBox1.Items.Add(New PersonalInfo("二郎", "じろう", "鹿児島", "22-2222-2222"))
Me.listBox1.Items.Add(New PersonalInfo("三郎", "さぶろう", "熊本", "33-3333-3333"))
Me.listBox1.Items.Add(New PersonalInfo("四郎", "しろう", "宮崎", "44-4444-4444"))
Me.listBox1.Items.Add(New PersonalInfo("五郎", "ごろう", "大分", "55-5555-5555"))
Me.listBox1.Items.Add(New PersonalInfo("六郎", "ろくろう", "福岡", "66-6666-6666"))
Me.listBox1.Items.Add(New PersonalInfo("七郎", "ななろう", "佐賀", "77-7777-7777"))
Me.listBox1.Items.Add(New PersonalInfo("八郎", "はちろう", "長崎", "88-8888-8888"))
End Sub
Private Sub listBox1_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles listBox1.SelectedIndexChanged
' リストボックスで選択されているアイテムを表示
If (Me.listBox1.SelectedItem Is Nothing = False) Then
Dim info As PersonalInfo = CType(Me.listBox1.SelectedItem, PersonalInfo)
Me.label2.Text = String.Format("氏名:{0}" & vbCrLf & "かな:{1}" & vbCrLf & _
"住所:{2}" & vbCrLf & "電話:{3}", _
info.NameKanji, info.NameKana, info.Address, info.Tel)
Else
Me.label2.Text = String.Empty
End If
End Sub
End Class
|
|
C#[Form3.cs] |
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ListBox_CS
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
// リストボックスボックスアイテム追加
this.listBox1.Items.Add(new PersonalInfo("一郎","いちろう","沖縄","11-1111-1111"));
this.listBox1.Items.Add(new PersonalInfo("二郎","じろう","鹿児島","22-2222-2222"));
this.listBox1.Items.Add(new PersonalInfo("三郎","さぶろう","熊本","33-3333-3333"));
this.listBox1.Items.Add(new PersonalInfo("四郎","しろう","宮崎","44-4444-4444"));
this.listBox1.Items.Add(new PersonalInfo("五郎","ごろう","大分","55-5555-5555"));
this.listBox1.Items.Add(new PersonalInfo("六郎","ろくろう","福岡","66-6666-6666"));
this.listBox1.Items.Add(new PersonalInfo("七郎","ななろう","佐賀","77-7777-7777"));
this.listBox1.Items.Add(new PersonalInfo("八郎","はちろう", "長崎", "88-8888-8888"));
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// リストボックスで選択されているアイテムを表示
if (this.listBox1.SelectedItem != null)
{
PersonalInfo info = (PersonalInfo)this.listBox1.SelectedItem;
this.label2.Text = string.Format("氏名:{0}\nかな:{1}\n住所:{2}\n電話:{3}",
info.NameKanji, info.NameKana, info.Address, info.Tel);
}
else
{
this.label2.Text = string.Empty;
}
}
}
}
|
|
|
※このページで紹介しているサンプルコードについて管理者は動作保障をいたしません※
※サンプルコードを使用する場合は、自己責任でお願いします※
|
【楽天 ランキング:スマートフォン】
|
|
|
|
このサイトはフリーソフトのMerge HTMLで作成されています。
このサイトはリンクフリーです。
|
ページの先頭に戻る |
Copyright© 2010-2015 Jun.Shiozaki All rights reserved. |
|
|
|