Back to Top

プログラムの覚書

VB.NETコンボボックス(ComboBox)

ComboBoxスタイル

ComboBoxのスタイルには3種類あり、DropDownStyleプロパティにより変更をします。
デフォルトではDropDownとなっています。

テキストを編集できないようにする

ドロップダウンされるリストからの選択のみを許し、テキスト編集(入力)を許可しなようにするには、ComboBoxのDropDownStyleプロパティをComboBoxStyle.DropDownListにします。

ドロップダウンリストに表示する項目数を変更する

DropDownStyleプロパティがDropDownまたはDropDownListの場合、右側のボタンを押して表示されるドロップダウンリストの項目数は、MaxDropDownItemsプロパティで変更できます。

ComboBox1.MaxDropDownItems = 20

指定した文字列と一致する項目を検索する

FindStringExactは、指定した文字列と一致する項目を検索します。該当項目がなければ、-1を、見つかれば該当Indexの値を返します。

ComboBox1.SelectedIndex = ComboBox1.FindStringExact("みかん")

項目を追加する

項目を追加する方法は、Items.Add・DataSourceなどがあります。

'Items.Addで設定
ComboBox1.Items.Add(New Fruit("0001", "リンゴ"))
ComboBox1.Items.Add(New Fruit("0002", "みかん"))
ComboBox1.Items.Add(New Fruit("0003", "いちご"))

または

'DataSourceで設定
Dim Fruits As New ArrayList()
Fruits.Add(New Fruit("0001", "リンゴ"))
Fruits.Add(New Fruit("0002", "みかん"))
Fruits.Add(New Fruit("0003", "いちご"))
ComboBox1.DataSource = Fruits

※Item.Add()で追加する出来るものはStringだけではありません。

表示を値を分ける

表示する項目と表示項目に対しての値を分けたい場合、の例を記載します。

・Items.Addで追加した場合、SelectedItemで取り出します。

・DataSourceで追加した場合、SelectedItem以外にSelectedValueで取り出せます。

通常は、TCommboBoxは、ToString()で取得出来るものをリストに表示します。

DisplayMemberでプロパティを指定する事により表示するものを変更することができます。

ValueMemberでプロパティを指定する事により、SelectedValueで取得出来るもの設定できます。

Public Class Fruit
    Protected m_strCode As String
    Protected m_strName As String

    Public Sub New(ByVal strCode As String, ByVal strName As String)
        Me.m_strCode = strCode
        Me.m_strName = strName
    End Sub

    Public ReadOnly Property Code() As String
        Get
            Return m_strCode
        End Get
    End Property

    Public ReadOnly Property FruitName() As String
        Get
            Return m_strName
        End Get
    End Property

    Public Overrides Function ToString() As String
        Return Me.Code + " - " + Me.FruitName
    End Function
End Class

Items.Addで追加する

ComboBox1.BeginUpdate()
ComboBox1.Items.Add(New Fruit("0001", "リンゴ"))
ComboBox1.Items.Add(New Fruit("0002", "みかん"))
ComboBox1.Items.Add(New Fruit("0003", "いちご"))
ComboBox1.EndUpdate()

ComboBox1.SelectedIndex = ComboBox1.FindStringExact("みかん")

ComboBox1.DisplayMember = "FruitName"

---------------------------------------------------------------------------------

[値を取得するときの処理]
Dim no As Integer = ComboBox1.SelectedIndex
Dim strTemp As Fruit = Me.ComboBox1.SelectedItem

※BeginUpdate()とEndUpdate()は普通いりません。(再描画しないようにする機能です)

DataSourceで追加する

Dim Fruits As New ArrayList()
Fruits.Add(New Fruit("0001", "リンゴ"))
Fruits.Add(New Fruit("0002", "みかん"))
Fruits.Add(New Fruit("0003", "いちご"))

ComboBox1.DataSource = Fruits
ComboBox1.DisplayMember = "FruitName"
ComboBox1.ValueMember = "Code"

---------------------------------------------------------------------------------

[値を取得するときの処理]
Dim no As Integer = ComboBox1.SelectedIndex
Dim strTemp As Fruit = Me.ComboBox1.SelectedItem
Dim strVal As String = ComboBox1.SelectedValue.ToString()

ComboBoxにEnumで列挙した値を設定する

Enum Fruit As Integer
    リンゴ = 10
    みかん = 20
    いちご = 30
End Enum

--------------------------------------------------------------------
[列挙体をComboBoxに設定する]

ComboBox1.DataSource = System.Enum.GetValues(GetType(Fruit))

--------------------------------------------------------------------
[選択された値を所得する]

Dim no As Integer = ComboBox1.SelectedValue

 

Webサイトを作成する

IISにサイトを作成する場合の手順を説明します。

インターネットインフォメーションサービス(IIS)マネージャー設定

1.インターネットインフォメーションサービス(IIS)マネージャーを起動させます。

2.「サイト」の部分を右クリックし出てきたウィンドウ内の「Webサイトの追加…」をクリックします。

3.「Webサイトの追加」で、サイト名(S)、物理パス(P)、ホスト名 の3か所を入力します。

サイト名  sample

物理パス  C:\inetpub\wwwroot\sample

ホスト名  sample

などです。

上の例では、http://sample としても「sampleのサーバー DNS address が見つかりませんでした」とエラーが出ます。

 

hostsファイルを修正

※C:/Windows/System32/drivers/etcの中にありますが、隠しフォルダですので見えませんし、管理者権限でないと修正できません。

修正は最終行に以下を追加します

127.0.0.1. sample

起動テスト用HTML

以下をindex.htmlとして、C:/inetpub/wwwroot/sampleのしたに作成する(管理者権限で行う)

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>sample</title>
</head>
<body>
    <p>Hello World</p>
</body>
</html>

あとは、http://sample でアクセスできます。

 

Posted in IIS | Leave a reply