ComboBoxについて への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 suig  (中学生) 投稿日時 2009/12/10 02:57:45
皆さん本当に有り難うございました。
目的のプログラムが無事完成致しました。
今から思い返してみると、かなり単純な事を質問していますねw
いろいろ勉強になりました。
有り難うございました
投稿者 ヴァン  (社会人) 投稿日時 2009/12/9 18:55:56
初めはデータをクラス化してDataSourceにバインドしてとか考えたけど、
そこまでは必要ないのね。

だったらシンプルに
    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
        Dim items As String() = {"A""B""C"}
        ComboBox1.Items.AddRange(items)
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Select Case ComboBox1.Text
            Case "A"
                ' Aの処理 
            Case "B"
                ' Bの処理 
            Case "C"
                ' Cの処理 
        End Select
    End Sub

投稿者 葉月  (社会人) 投稿日時 2009/12/9 09:17:09
>>>fshyさん
アドバイスありがとうございます。
サンプルなので――といいたい所ですが、他でも結構使ってた気がします。
今後、アドバイスを役立てていこうと思います。

>>>流れ者さん
他のスレでも的確なアドバイスを拝見しまして、
せっかくなのでご挨拶いたしました。
今後ともよろしくお願いします。
投稿者 流れ者  (その他) 投稿日時 2009/12/9 04:02:39
こんばんは。

suigさんが初心者であることを考慮すると
とりあえず、あにすさんのサンプルを元に、Select Caseで実現するのが早道かもしれませんね。
それで出来たソースを元に、葉月さんのサンプルのような、複数の要素を一括して入れる方法や
daiveさんが示した他の方法を試したほうが、混乱をきたさないと思います。
投稿者 (削除されました)  () 投稿日時 2009/12/9 03:47:21
(削除されました)
投稿者 suig  (中学生) 投稿日時 2009/12/9 03:24:05
やっぱり、応用が難しいのでもう一度質問させていただきます。
最初に加えて変数a,b,c,d,eがあるとします。
Aを選択すればa=3,b=1,c=2,d=2,e=2とします。
同様にしてB、Cもあり、Bの場合はa=1,b=3・・・と言うように、一つ選択すれば、複数の変数の値が決まるようにするにはどうしたらいいでしょうか?
投稿者 fshy  (社会人) 投稿日時 2009/12/8 12:35:41
dataはそもそもが複数形なのでstrDatasは少し違和感が、、、。
因みに単数形はdatum


投稿者 suig  (中学生) 投稿日時 2009/12/8 07:11:48
皆さん、有り難うございます。
サンプルじゃ無いので大丈夫です。
(いきなり自作のものを作ってるんです)
頑張って応用します。
でも、また質問するかもしれませんw
投稿者 葉月  (社会人) 投稿日時 2009/12/8 07:03:38
サンプルを作っていたら被りましたね。
動きは違うので、一応自分のもあげておきます。

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
        ' 格納するアイテム 
        Dim strDatas As String() = {"10""20""30"}
        ComboBox1.Items.AddRange(strDatas)
    End Sub

    ' 意図を間違えて関係のないコードを書きました。 
    ' ボタンを押すと全体に10加算します。 
    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        ' ComboBoxのアイテム数 
        Dim iLen As Integer = ComboBox1.Items.Count

        If iLen <= 0 Then
            Return
        End If

        ' 一時的に格納 
        Dim arItems As New ArrayList()

        ' ComboBoxから取得する値 
        Dim iVal As Integer = 0
        For Each strVal As String In ComboBox1.Items
            iVal = Integer.Parse(strVal) + 10
            arItems.Add(iVal)
        Next

        ' 全アイテム消去 
        ComboBox1.Items.Clear()
        ComboBox1.BeginUpdate()
        ComboBox1.Items.AddRange(arItems.ToArray())
        ComboBox1.EndUpdate()
    End Sub

    ' 選択したアイテムを10プラスします。 
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        ' 選択番号 
        Dim iIndex As Integer = ComboBox1.SelectedIndex()
        ' 値 
        Dim iVal As Integer = Integer.Parse(ComboBox1.Items(iIndex)) + 10

        ComboBox1.Items.Remove(ComboBox1.SelectedItem)
        ComboBox1.Items.Insert(iIndex, iVal)
    End Sub
End Class

投稿者 あにす  (社会人) 投稿日時 2009/12/8 06:41:55
意図はこんな感じですか?
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
        For hoge As Hoge = hoge.A To hoge.C
            Me.ComboBox1.Items.Add(hoge)
        Next
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim X As Integer = Me.ComboBox1.SelectedItem * 10
        Me.Label1.Text = "X = " + X.ToString()
    End Sub
End Class

Enum Hoge
    A = 1
    B
    C
End Enum
投稿者 suig  (中学生) 投稿日時 2009/12/8 04:02:24
プログラミングを興味本位で始めたばかりの超初心者です。
ネットで多少学んだ位の知識しかありません。
早速質問させていただきます。
ComboBox(横の↓を押したら一覧が出てくる奴)について質問します。
プログラムの中でこれを使いたいのですが、使い方がわかりません。
率直に言うと下記の様なことの仕方を聞きたいのです。

①その一覧をA、B、Cの三つにしたいとします。
②Aを選んだ場合1の数値を、Bの場合2の数値を、Cは3の数値にして、Xの計算式に代入したいとします。
 X=ComboBoxで選ばれた値+10

簡単に言うとこの2点を質問したいと思います。
実際こんな簡単な訳が無いのですが、これがわかれば応用ができます。種類が変わったり、数字が変わったりするだけですから。

初めての投稿になります。かなり初心者なので、用語が間違ってたり(ComboBoxで合ってるのかな?)言い回しが変だったりすることが多いと思います。だいたいの意味をわっかてくだされば、多めに見ていただけると嬉しいです。でも、意味が通じなかったら意味がないので聞いていただけると嬉しいです。
あと、あまり難しく言われるとわからないので、できるだけ簡単に説明していただけると有り難いです。
では、回答よろしくお願いします。

因みに、使用しているvbはvb2008のエクスプレスエディションです。
一応書いておくと、windows vista home premium です。