tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDataGridViewのComboBoxColumnにListBoxの内容を登録したい
記事No5433
投稿日: 2007/05/03(Thu) 09:50
投稿者area88
はじめまして、area88と申します。

DataGridViewのComboBoxColumnに、ListBoxの内容を登録する方法をお聞きします。
ListBoxの内容は、いろいろ変更されます。
例えば、ListBox1のコレクションに、犬、猫、猿、豚、牛、などが登録されており、
この内容を、DataGridViewのComboBoxColumnのColumn1に反映させたいのです。
で、ListBox1のコレクションが変更されたとき、例えば、馬、鹿が登録されたら、
その内容がColumn1に反映され選択できるようにしたいのです。
簡単にいきそうなんですが、うまくListBox1とColumn1がリンクできません。
ご教授、よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: DataGridViewのComboBoxColumnにListBoxの内容を登録したい
記事No5464
投稿日: 2007/05/10(Thu) 13:59
投稿者なおこ(・∀・)
お世話になります。

ListBox で選択した動物に紐づく品種名、を
DataGridViewComboBoxColumn のデータソースにしたいという事ですか?

(たとえば ListBox で 犬を選択したら
 DataGridView の DataGridViewComboBoxColumn のリストは
 「ヨークシャー・テリア、ダックスフント、シュナウザー」等になる。
 猫を選択したら「アビシニアン、スコティッシュフォールド、ロシアンブルー」
 のような感じ。)

であれば、
技術的にできないことはないです。
現在どのように実装されているかの提示があるとレスを付けやすいと思います。

[ツリー表示へ]
タイトルRe^2: DataGridViewのComboBoxColumnにListBoxの内容を登録したい
記事No5466
投稿日: 2007/05/10(Thu) 21:30
投稿者area88
こんにちは、area88です。

レスありがとうございます。
もうちょっと単純な内容です。
DataGridViewのComboBoxColumnには、通常(?)、右クリックで、列の編集より、
コレクションに品目を登録しておき、プルダウンで選択できるようになりますね。
しかし、このコレクションの内容が、決定してなく、ListBoxに記載された内容を、
ComboBoxColumnのコレクションに反映されたいということです。
つまり、ComboBoxColumnの中身はデフォルトでは、なし(Null)です。
で、ListBoxに内容を加えていくと、(例えば、牛、馬、狐、犬を加えると、)
ComboBoxColumnのコレクションに、牛、馬、狐、犬がプルダウンで選択できるようになる。
こんな感じで、プルダウンリストが変化していくのです。
簡単そうですが、私の単に文法を知らないための質問かな?

[ツリー表示へ]
タイトルRe^3: DataGridViewのComboBoxColumnにListBoxの内容を登録したい
記事No5467
投稿日: 2007/05/11(Fri) 08:24
投稿者y4yama
> DataGridViewのComboBoxColumnには、通常(?)、右クリックで、列の編集より、
> コレクションに品目を登録しておき、プルダウンで選択できるようになりますね。
> しかし、このコレクションの内容が、決定してなく、ListBoxに記載されたを、
> ComboBoxColumnのコレクションに反映されたいということです。

area88さん、こんにちは
昨日、このことかな?と想像しまして、勉強させてもらってま〜す
ListBoxの内容がどのタイミングで変更されるかは、あなた次第ですからここでは
おおきな問題ではないと思います。
Helpで、DataGridViewComboBoxCell.Items プロパティ を見てたら、追加するのは
結構簡単にできました

    Dim new_num As Integer = 1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim col1 As DataGridViewComboBoxColumn = DataGridView1.Columns.Item(0)
        col1.Items.Add("new cat" & CStr(new_num))
        new_num += 1
    End Sub
で、Button1_Clickの度にプルダウンリストに追加できました。
.Itemsは「項目の追加、項目の削除、および項目数の取得ができます。」と書いてあるので充分かな?

[ツリー表示へ]
タイトルRe^4: DataGridViewのComboBoxColumnにListBoxの内容を登録したい
記事No5472
投稿日: 2007/05/13(Sun) 00:09
投稿者area88
こんにちは、area88です。

解けてしまいました。
なんと、ちょーーーーーどシンプルでよかったのです。

  @ Dim z As Object = Column16

    A  z.Items.clear()

    B  For Each obj As Object In ListBox1.Items
            z.Items.add(obj)
        Next

@について
これは、DataGridView3.Column16と記述して、コンパイラーから文句が出ており、
どうしても、進めなかったのですが、シンプルにColumn16でOKなんですね。(^_^)v

Aについて
Bの記述のみでは、ListBox1のアイテムが繰り返し登録されています。
例:馬、牛、犬、猫がListBox1に登録されると、Column16には、初めのプルダウンでは
馬、牛、犬、猫ですが、二回目のプルダウンに、馬、牛、犬、猫、馬、牛、犬、猫と
列記されてしまいます。
で、Column16内の登録アイテムを消去した後、またBで登録しなおすということです。

上記の方法で、ListBox内のアイテムが変化したとき、ComboBox内のプルダウンメニューを
変化させることができるようになりました。\(◎o◎)/!

なおこさん、y4yamaさん、アドバイスありがとうございました。<(_ _)>ペコリ

[ツリー表示へ]