ListBox内のDropDownListに任意の項目を追加し、データと連動させるには?

このQ&Aのポイント
  • ListBox内のDropDownListに任意の項目を追加し、データと連動させる方法を教えてください。
  • 初心者の方がListBox内にDropDownListを使用して都道府県を選択できるようにする方法を教えてください。
  • DropDownListのプロパティを使用してListBox内の都道府県を更新する方法が分かりません。どうかアドバイスをお願いします。
回答を見る
  • ベストアンサー

ListBox内のDropDownListに任意の項目を追加し、データと連動させるには?

初心者です。質問させていただきます。 ListBoxを使っているのですが、その中にDropDownListがあります。 そのDropDownListのプロパティのItemsというところから北海道、青森……沖縄と都道府県を入れて選択できるようにして、 DataGridなどの選択ボタンでデータベースの東京を選択してListBoxを開いたときに、 ListBox内のDropDownListの東京が選択されて表示されて、 そのDropDownListをクリックすれば、都道府県がまた選べて、 更新ボタンを押すと更新される。 というようなのを作成したいのですが、 うまくいかず、悩んでいます。 LabelやTextBoxではうまく表示されたのですが、 リストから選択して更新するということができないので、 DropDownListで同じようにしてみると、 クリックしてDropDownListを開いても東京なら東京だけしか出てきませんでした。 VBだと簡単にできるのに、どうしていいかわかりません。 どうか、よろしくお願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • Xaval
  • ベストアンサー率58% (61/105)
回答No.1

よくわからない質問ですが、 更新時にItemsに選択項目しか入れてないだけでは?

関連するQ&A

  • VB2015 ListBoxの二次元配列を呼出す

    始めまして。 趣味でVBソフトを作りたいと奮闘中です。 ExcelVBAやC#の簡単ソフトを作った経験があります。 パソコン環境は、W10x64、VB2015です。 ListBoxに2次元配列で下記のように書き込み、選択した行の右側のデータ(欄2)を他のTextBoxに表示させたいのです。 下のデータを2次元配列にして読み込ませる方法と、選択した行の欄2のデータを取り込む方法を教えて頂けると嬉しいです。ListBoxのプロパティのMultiColumnはTrueにしてあります。  欄1 欄2 北海道  550 青森県  138 宮城県  230 東京都  1360 現在は次のようにしてなんとか逃げておりますが、2次元配列でスマートに出来れば嬉しいです。 書き込み ListBox1.BeginUpdate() ListBox1.Items.Add("北海道 , 550") ListBox1.Items.Add("青森県 , 138") ListBox1.Items.Add("宮城県 , 230") ListBox1.Items.Add("東京都 , 1360") ListBox1.EndUpdate() 呼び出し Dim textArray = ListBox1.SelectedItem.ToString.Split(",")  Dim Jinko As Single = Single.Parse(textArray(1)) TextBox.Text = Jinko 宜しくお願い致します。 熊谷

  • ListBoxの選択した項目を削除したら、DBの同じデータの行も削除を

    ListBoxの選択した項目を削除したら、DBの同じデータの行も削除をしたいです。 環境:XP-Pro/VB2005/SQLServer2005 簡単なSchedule管理ソフトを作成しています。 画面には左側にMonthCalendar、開始時間を表示するDomainUpDown、件名、内容を入力するTextBoxと登録ボタンがあり、左側にListBox、その下に修正ボタン、削除ボタンが配置してあります。 登録ボタンを押すとListBoxに内容が表示されると同時にDBにデータが保存されます。 DBのテーブル:Shortは startdate(日付) DateTime start(開始時間) varchar(50) subject(件名) varchar(50) contents(内容) varchar(50) *日付と開始時間は複合主キー 今回は登録した項目を選択して削除ボタンをクリックしたら、DB内の同じ内容も削除するという動作です。 分からない部分はDBに接続してコネクションを定義した後のSQLステートメントです。 現在は、 connection.Open() Command.CommandText = "DELETE FROM Short WHERE start = '" & ListBox1.SelectedIndex &"'" Command.ExecuteNonQuery connection.Close() となっています。が削除されませんでした。 SQLステートメントで"ListBoxの選択している項目と同じ行"というようにWHERE句で定義したいのですが分かりません。 ご指導よろしくお願いいたします。

  • ボタンをクリックしても空白をリストに追加しないようにしたい

    初心者ですのでよろしくお願いいたします。 以下のようなコードでボタンを押すとテキストボックスに入力してあるテキストをリストに登録したいのですが、空白の場合は追加したくありません。どのように書けばいいでしょうか? よろしくお願いいたします。 (ちなみにLabel3にはリストに登録された数が出ます) Public Class Form1 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click End End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Add(TextBox1.Text) TextBox1.Clear() Label3.Text = ListBox1.Items.Count End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Remove(ListBox1.SelectedItem) Label3.Text = ListBox1.Items.Count End Sub End Class

  • DataGridのReadOnlyについて

    こんにちは いつもお世話になっております。 VB.NET(2003)で、DataGridにデータを表示して、編集-更新する処理を行っています。 表示ボタンを押したら表示され、更新ボタンで更新される動作です。 表示方法はDataGridTextBoxColumnのReadOnly=TrueにしたものをDataTableにADDし、 これをDataGrid.DataSourceにセットして表示させています。 そして、クリアボタン押したときに dtb = New DataTable 'グリッドに表示 DataGrid.DataSource = dtb というようにDataTableを初期化してクリアしているのですが このときDataGrid上のTextBoxにカーソルがあると そのTextがクリアされず表示されたままになってしまいます。 ReadOnlyですが、一応カーソルは当たるようにしたいのです。 表示されたままになっているのは、クリアの方法がまずいのでしょうか? すみませんが、どなたか教えていただけませんでしょうか?

  • VB6 DataGrid コントロールについて

    お世話になっております。 VB6でDataGridコントロールについてどなたか教えてください! いろいろ調べたのですが、昔のコントロールのせいかあまり資料がありませんでした。 DataGridをフォームに貼り付けました。 ExcelのB1セルをDataGridに表示したいのですが、わかりません。 VBのTextBoxに表示はできます。DataGridが全くわかりません。 どうか、ご教示お願い致します!

  • 電卓のディスプレイ部分に適したコントロールについて

    フォームアプリケーションで簡易電卓を作っています。 計算するための処理は理解できたのですが、 電卓のディスプレイ部分(??コントロール)に上手く表示させることが出来ません。 本物の電卓のように、フォーム上にある数字のボタンを押した瞬間に、その数字がディスプレイ部分のコントロールに右詰めで表示にしたいのですがどうしたらよいのでしょうか? 例えば、123 ( ひゃくにじゅうさん )を入力するとき、(1)ボタン、(2)ボタン、(3)ボタンを連続でクリックしますが、この時、ディスプレイ部分の右側に、 123 と表示させたいのですが、 実際、自分でチャレンジしたものは、 3 ※ ↑ 1と2が上書きされて、3だけが表示されたり、( label、textBox、richtetextBox使用時 ) 1 2 3 ※ ↑数字が改行され表示されてしまったりします。(listBox使用時) ディスプレイ部分をlistBox、textBox、richtextBox、labelにしてみましたが、どれも失敗しています。 それぞれのプロパティをいじってみたのですが駄目でした。 入力した数字がディスプレイ部分の右側に表示されるだけで、label、textBox、richtextBox、は上書きされ、listBoxは改行されたような表示になってしまいます。 もしかしてこれらはプロパティでの設定では不可能で、それ用のコードを記述する必要があるのかなとも思ったりしていますが、そのコードも検索できずにいるので質問させていただきました。 入力した数字が、上書きされたり改行されたりしないような、コントロールはあるのでしょうか? 知っている方是非アドバイスを頂きたいです。 どうぞよろしくお願いします。 ●使用環境は、以下の通りです。 visualC++ 2010 express .netframework フォームアプリケーション

  • リストボックスで選択した項目のデータとワークシートのデータを比較したい

    Excel2003を使用しています。 個人用マクロブックにユーザーフォームを作成し、年と週を入力するリストボックスとコマンドボタンを配置しました。 Listbox1では年(2005,2006,2007)、Listbox2では週(01,02・・・・,53) が選択できるようになっています。 コマンドボタンをクリックすると、Listbox1とListbox2で選択した項目を取得し、hizuke という変数に代入します(例:2005 02)。 hizuke の値を 既に開いているcsvファイルから検索し、一致しているセルを選択したいのですが、どうしても同じものと認識してくれません。 hizukeのデータ型はStringにしていますが、何か問題があると思われますか? どうぞご教授ください。宜しくお願い致します。

  • VBA 都道府県から市を選択し詳細を表示させる

    またお世話になります。都道府県から市を選択するとその詳細を表示させたいのですが、「‘ここでエラーが出る」のところでエラーがでます。 「詳細」のシートには都道府県を入力したセルに名前を付け、市を入力したセルにも市ごとに名前を付けました。都道府県を選択し、市を選択するとエラーが出ます。 説明が足りないかとは思いますが、どなたか教えてください。 以下、入力したセルです。    A    B    C   D 1 北海道  赤平市  リンゴ ミカン 2 青森   阿寒郡  ブドウ モモ 3 岩手   旭川市  イチゴ  以下、今の現状です。 Private Sub UserForm_Initialize() ’都道府県を選択 Me.ComboBox1.RowSource = "都道府県" Me.ListBox2.RowSource = "" End Sub Private Sub ComboBox1_Change() ‘都道府県が選択されたらリストボックス2に市を表示させる Me.ListBox2.Value = "" Me.ListBox2.RowSource = Me.ComboBox1.Value End Sub Private Sub ListBox2_Click() 'リストボックス2に表示された市を選択すると詳細をテキストボックス7に表示させる Dim r As Long With ListBox2 If .ListIndex > -1 Then r = .List(.ListIndex, 1) = 0  ‘ここでエラーが出る TextBox7.Value = Worksheets("詳細").Cells(r, 3) ' TextBox8.Value = Worksheets("詳細").Cells(r, 4) ' End If End With End Sub

  • VB.NET)ボックスからラベルにデータを反映させたい

    先日コンボボックス連動についての質問をしたものです 今回も金曜夕方完成まででどうしても分からない部分がありお知恵をお借りしたく質問させていただきます(聞ける方はいるのですがどうしても直接見てもらえる状況でなく口頭になってしまうので上手く聞けず説明できず理解できずの状態です) 前回同様条件は、VB.NET(言語:VB)でAccessは利用なら最低限 Access中心の開発やマクロ、Excel等は使用しないということでお願いします private sub form4_load(bybal~)handle form4_load dim strdata() as string = {"年会費","月会費"} listbox2.items.addrange(strdata) listbox3.items.addrange(strdata) select case form2.combobox1.text case "東北" label9.text = "東北"(関東とコンボボックス1で出たら関東がラベルに表示できるようしたいのです) end select 上記はリストボックスに格納するために記載、listbox2と3は1と4にそれぞれボタンクリックがあればデータを写す作業をします 問題は下で、Form4にLabel9があるのですが別のForm2のコンボボックス で選ばれたデータをLavel9に反映させたいのです 同様Form2のコンボボックス2(1で選ばれたものの中でさらに選択するという設定になっています)で選ばれたデータをLavel10に反映させたいのですが上手くいきません ここはこうしたほうがいい、こう書いたらどうか?みたいなのがありましたらよろしくお願いいたします VBはあまり経験が無く分からないことばかりなので、分かりやすくお願いできますでしょうか?

  • DataSetの更新時のエラーについて。

    VB.NETです。 SqlDataAdapterからDataSetを生成して使用しています。 DataGridに表示させて、選択したレコードを削除させるようにしています。 そのとき、DataGrid上からは削除されるのですが、(DBは未更新) 更新ボタンを押したときに更新させていますが、このときにエラーが発生します。↓ 'System.InvalidOperationException' のハンドルされていない例外が system.data.dll で発生しました。 追加情報 : 更新には、削除された行を含む DataRow コレクションが渡されたとき、有効な DeleteCommand が必要です。 他のページでも同じ処理でうまく動いているのでここだけうまく動かないという理由がわかりません。 更新ボタンのところの処理は SqlDataAdapter12.Update(Ds12, "T製品") DataGrid1.Update() だけなのですが、なにが足りないでしょうか? 追加のときはなんら問題ないのですが・・・。