• 締切済み

VB.NET コンボボックスの表示について

vb2010で作成しています。 コンボボックスの表示 ⇒ 更新をどう処理するのか分かりません。 例えば下記のようなフルーツテーブルがあったとします。 ・リンゴ ・ミカン ・モモ テーブルから「ミカン」を取得し、コンボボックスへ表示する所までは出来ました。 その後に、「ミカン」から「リンゴ」に変換したい場合、テーブルからコンボボックスへデータを渡すと、 ・ミカン ・リンゴ ・ミカン ・モモ と「ミカン」が2個表示されてしまいます。 こういう場合どのようにプログラムを作成するのがベストなのでしょうか? 自分で試したのは、ミカンの情報を保持したまま、一旦コンボボックスをクリアし、 そのあとミカン以外のデータを再度読み込み、コンボボックスへ渡すようにしました。 結果は ・ミカン ・リンゴ ・モモ となります。 無駄な処理をしているとしか思えず、他に良い方法があるように思い、質問させて頂きました。 VB.NETは現在手探りで作っている感じで分からない事が多いのですが、分かる方がいらっしゃったら教えて下さい。 よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

コンボボックスのアイテムを整えるのは、コードを作る(コンボの仕組みを作る)人の責任です。 普通はアイテムがダブル意味(必要は無いと言うことぐらいはいえると思いますが。 この質問ではアイテムにどういう項目を出したいのか触れてなくて質問の意味がわからない。 例えば、ある期間に売り上げた商品のリストとか、自社で販売している商品のリストとかなどがあります。 そしてそれらは、プログラマーが知っていてリストする(例えば男女とか曜日なら初めから選択肢はわかる)こともあるし、データーベースから売り上げ品目のDistinct(重複しない)なリストを出して、それらをセットすることもあるでしょう(この場合はソフトで抽出でもしないと、何が売れたか正確にはわからない)。 >テーブルから「ミカン」を取得し が、なぜ「ミカン」が出てきたのか(ミカンとは問う言う背景で出てきたのか)説明しないとダメでしょう。本日の売上を出してきたのなら、当然昨日以前にもその品目は出てきたでしょう。するとそのまま加えればダブル。そんなの当たり前でしょう。 だからコンボに出したいものの範疇と>テーブルから「ミカン」を出してきた仕組みを説明し、目的にあわせて (1)追加・削除で賄える場合 (2)そっくり入れ替えるべき 場合とありえます。それらは質問に説明しないと方法は決められない。 そっくり入れ替えられるならそうするほうが、簡単とはいえそう。 質問するコード以上のことを説明しないと。 表面的に言えば、重複しないようなリストを作れ、と言うことになる。それは今あるリストにあれば、加えず、無ければ加えると言える。そのロジックやコードを質問したいなら、別の質問に改めるべきだと思う。

関連するQ&A

  • VBでコンボボックスとテキストボックスの連係

    VBでフォームにデータコンボボックスとテキストボックスを一つづつ作り、データコンボボックスで値を選択し、その値に対する値をテキストボックスに表示させたいんですがどうすればいいでしょうか? データコンボボックスで選択する元になるテーブルは ID | 商品 1 | みかん 2 | ばなな 3 | りんご と、上記のような形のテーブルをもちいています。 例えばデータコンボボックスで「1」を選択した場合テキストボックスに「みかん」と表示させたいです。

  • vb6のコンボボックスの操作について

    おはようございます。 vb6+MDBの環境下で、コンボボックスについて質問です。 マスタとなるテーブルA(都道府県など)と、一般的(?)なデータを日々貯めていくテーブルBがあり、 Bに、Aのキーとなる値が保存されています。 テーブルデータBの表示・更新画面を作っているのですが、 テーブルAの内容を画面上のコンボボックスに選択項目としてADDして表示するところまでは出来たのですが、以下のことを実現するには、コンボボックスにどういう記述で実現するのかわかりません。 1.テーブルBに持っているAの都道府県コードに該当する項目を、Bのデータ選択時に表示したい。 【テーブルA】 Aのキーコード,都道府県名 【テーブルB】 Bのキーコード,Aのキーコード,住所… このような場合、イベント時にコンボボックスをどのように処理するようにソースを書けば実現できますか?

  • C# コンボボックスについて

    コンボボックスが2つあって 2つとも中身があります。 コンボボックス1の中身 りんご みかん なし コンボボックス2の中身 10001 10002 10003 やりたいことは、コンボボックス1にみかんを選択したら自動的にコンボボックス2に10002と表示したいのですが、どうしたらできますか? どなたか教えて頂けませんか?お願いいたします。

  • VBでコンボボックスをテーブルのように扱いたい

    VB.net 2010での質問です。 外部テキストファイルを読み込んで、フォーム上のコンボボックスに入れるのは簡単にできましたが、 ボタンを押したときに、選んだコンボボックスの該当データのうち一部だけを取り出して他データとからめつつ処理して表示させたいのです。 テキストファイルが以下のようになっています。データ件数は多くはありません。 阿部,北海道,10001,2001/05/01 山崎,東京都,11111,2003/09/25 ボタンを押した時には、別のテキストボックスに 山崎 - 10001 と表示させたいのです。贅沢を言えば、コンボボックスには人名のみが表示されるようにできれば素晴らしいです。 どうかよろしくお願いします。

  • VB.NET コンボボックスからのitem名のTEXTとりいれについて

    VB.NET 勉強しはじめてまだ3ヶ月の初心者です。 (もし、表現が幼稚ならお許しください。) コンボボックスに3個(りんご、バナナ、みかん)のITEMがあります。 まず、りんごをボックスから選んだと同時に、にわざわざ、"りんご”というtextは別には書かないで、そのままボックスにでているりんごの表示をを果物名(labelFruits) に持ってきたいのですが。できますでしょうか。 me.labelFruits.text = ??????? 果物名以外の表示には収穫量、消費量など計算させるところがあります。

  • コンボボックスにつきまして

    JComboBoxを使って、コンボボックスを作成したいのすが、 表示は名称で、実際の値取得はコードで取りたいのですが、 可能でしょうか? 例えば、 コード  名称 001   りんご 002   ぶどう 003   パイン というデータをセットし、 コンボボックスのドロップダウンでは「りんご」を選択したときには、 「001」という値を取得したいのです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • コンボボックスで選択した項目を保存する方法

    ダイアログ内にコンボボックスを作り、コンボボックス内の項目には、 TEXT("りんご"),TEXT("メロン"), TEXT("みかん")を表示させました。 先頭項目は、りんご・メロン・みかんの順です。 デフォルトでりんごにカーソルがありますが、 みかんを選択してダイアログを閉じ、再度ダイアログを呼出した時に、 みかんにカーソルがあるようにするには、 どのようにしたら良いのでしょうか? #SDK、Win98、Vc++で作成しています。 宜しくお願いします。

  • エクセルVBA(マクロ-コンボボックスについて)

    マクロ初心者です。 教えてください。 コンボボックスで、[▼]をクリックすると、 [りんご]、[いちご]、[みかん]のリストが表示されます。 しかし、もう一度、[▼]をクリックするとリストの数が増えています。 [りんご]、[いちご]、[みかん]、[りんご]、[いちご]、[みかん]、[りんご]、[いちご]、[みかん] 全くの初心者なので、どうすればいいかわかりません。 コンボボックスで、[▼]をクリックすると、 [りんご]、[いちご]、[みかん]のリストのみが常に表示されるようにしたいです。 下記がコードです。 ---------------------------------------- Private Sub 種類_Combo_DropButtonClick() '** データセット 種類_Combo.AddItem "りんご" 種類_Combo.AddItem "いちご" 種類_Combo.AddItem "みかん" End Sub ---------------------------------------- よろしくお願いします。

  • VB.NET2003のDataGridでコンボボックス

    こんにちは。 最近VB.NET(2003)を始めたばかりの初心者です。 DataGridにコンボボックスを作成する方法を探してまして、 http://dobon.net/vb/dotnet/datagrid/datagridcombobox.html に書いてあるようにDataGridTextBoxColumnクラスからの派生クラスを作成して呼び出してみました。 そうしたところ、コンボボックスが表示され、データのセットもきちんとできました。 しかし、そのコンボボックスで選択している値を取得する方法がわからなく困ってます。 たとえば Dim comboSorce As New DataTable("ComboBox") comboSorce.Columns.Add("DisplayMember", GetType(String)) comboSorce.Columns.Add("ValueMember", GetType(Integer)) comboSorce.Rows.Add(New Object() {"OK", 0}) comboSorce.Rows.Add(New Object() {"NG", 1}) というデータをコンボボックスにセットした場合 OK,NGという表示上の値は CStr(DataGrid1(row,col)) で取得できますが、実際の値を取得する方法がわかりません。 ご存知の方いらっしゃいましたら、ご教授ください。 それと、行毎に違う値(リストデータ)のコンボボックスを作成することはできますでしょうか? 以上です。よろしくお願いします。

  • エクセルで2段階コンボボックスを作成

    エクセルのシート上にコンボボックスを2つ作成して Aのコンボボックスの内容を選択するとBのコンボボックスの値が変わるというものを作成したいです。 エクセルのプルダウンで最初は考えていましたが、プルダウンだと三角の矢印が常に表示されない為あきらめました。 なのでコンボボックスの作成の仕方を教えて下さい。 例として野菜とくだものをあげます コンボボックスAで選択するもの→ 野菜、くだもの コンボボックスBで選択するもの→  【野菜の場合】キャベツ、にんじん、トマト 【くだものの場合」バナナ、りんご、みかん 以上です。よろしくお願いいたします。

専門家に質問してみよう