すらすらプログラマーへのお問い合わせ
すらすらのブログ
アクセス数  累計:000,102,591  昨日:000,000,217  本日:000,000,104
Loading
リストボックス
.NET プログラミング
プロパティグリッド
印刷
リストボックス
スレッド
リストビュー
インストーラー
やってみよう!

できるVisual Studio 2015 Windows /Android/iOS アプリ対応

独習C# 第3版

VisualBasic2013パーフェクトマスター (Perfect Master SERIES)

プログラミング.NET Framework 第4版 (Microsoft Press)

VisualBasic2013逆引き大全555の極意

猫でもわかるWindowsプログラミング 第4版 (猫でもわかるプログラミング)

VisualC#2013逆引き大全555の極意

文字列以外のアイテム 最終更新:2010/07/22
【Amazon ランキング:本 - 資格・検定・就職】

ここまでリストボックスに 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 StringByVal nameKana As String, _
                   
ByVal address As StringByVal 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 ObjectByVal 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 = FalseThen

            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.