• ベストアンサー

コンボボックスのアイテムにデータを付ける方法を教えて VB.NET

こんばんは。 VB.NET、WinXPなのですが、 コンボボックスやリストボックスのアイテムに 別のデータ(テキスト文字列など)を一緒に 記憶させておくような方法があったと思いますが、 そのような方法は標準の機能ですか? 方法や名称だけでも教えて頂けると助かります。 よろしくおねがいします。m(__)m

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

  • ベストアンサー
回答No.2

お世話になります。 > コンボボックスやリストボックスのアイテムに > 別のデータ(テキスト文字列など)を一緒に > 記憶させておくような方法 記憶させておくような方法って...? もうちょっと具体的に聞かないと解らないですけど、 VS2005 なら My.Settings とか http://www.microsoft.com/japan/msdn/vs05/vbasic/vbmysettings.asp PropertyBinding の事かな? http://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html

popopompom
質問者

お礼

とても詳しくご説明をして頂きありがとうございます。 パソコンが不調に陥りパスワードを覚えていなかったので、 GOOIDにログインできなくなってしまい お礼の書き込みが出来ずもうしわけございませんでした。 プログラム作成もその時から停止してしまっていましたので、 教えて頂いた方法を研究しつつ、もう一度作り直してみたいと思います。 ご丁寧に詳しく教えて頂き本当にありがとうございました。

popopompom
質問者

補足

こんばんは。 ご回答ありがとうございます。 わかりにくい書き方をして申し訳ございませんでした。 当方が思っているのは、例えば リストボックスにファイルをドラッグ&ドロップして ファイル名を追加して、ファイルに何らかの処理を したいプログラムを作るとすると、 リストボックスにファイル名がフルパスで表示されると 見た感じややこしくなるので、GetFileNameで ファイル名のみを表示するようにして、 対応する番号にフルパスの文字列を入れておきたいと思っています。 配列を用意して、同じようなことをやったことがあるのですが、 以前どこかで配列を用いないで、コントロールの機能のような方法でやっているのを見たことがあって、 次に使う時はこの方法でやろうと思っていたのですが、 URLを覚えておくのを忘れてしまい、どのような方法だったのかわからなくなってしまいました。 もし何かありましたら、またご回答頂けると幸いです。

その他の回答 (3)

回答No.4

お世話になります。 それとも、こういう事? Public Class Form4   Private m_datasource As DataTable   Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load     Me.ListBox1.SelectionMode = SelectionMode.One     Me.ListBox1.AllowDrop = True     Me.m_datasource = New DataTable     Me.m_datasource.Columns.Add("shortFileName", GetType(String))     Me.m_datasource.Columns.Add("fullFileName", GetType(String))     Me.ListBox1.DataSource = Me.m_datasource     Me.ListBox1.DisplayMember = "shortFileName"     Me.ListBox1.ValueMember = "fullFileName"   End Sub   Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter     If e.Data.GetDataPresent(DataFormats.FileDrop) Then       e.Effect = DragDropEffects.Copy     End If   End Sub   Private Sub ListBox1_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragOver     If e.Data.GetDataPresent(DataFormats.FileDrop) Then       e.Effect = DragDropEffects.Copy     End If   End Sub   Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop     If e.Data.GetDataPresent(DataFormats.FileDrop) Then       Dim s() As String = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())       For i As Integer = 0 To s.Length - 1         Me.m_datasource.Rows.Add(New String() {System.IO.Path.GetFileName(s(i)), s(i)})       Next     End If   End Sub   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     For Each row As DataRow In Me.m_datasource.Rows       Console.WriteLine("ファイル名:" & Convert.ToString(row("shortFileName")))       Console.WriteLine("パス:" & Convert.ToString(row("fullFileName")))     Next   End Sub End Class

回答No.3

お世話になります。 では、こういう事でしょうか。 Public Class Form3   Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load     Me.ListBox1.SelectionMode = SelectionMode.One     Me.ListBox1.AllowDrop = True   End Sub   Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter     If e.Data.GetDataPresent(DataFormats.FileDrop) Then       e.Effect = DragDropEffects.Copy     End If   End Sub   Private Sub ListBox1_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragOver     If e.Data.GetDataPresent(DataFormats.FileDrop) Then       e.Effect = DragDropEffects.Copy     End If   End Sub   Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop     If e.Data.GetDataPresent(DataFormats.FileDrop) Then       Dim s() As String = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())       For i As Integer = 0 To s.Length - 1         Me.ListBox1.Items.Add(New TestFile(s(i)))       Next     End If   End Sub   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     For Each testFileObject As TestFile In Me.ListBox1.Items       Console.WriteLine("ファイル名:" & testFileObject.ShortFileName)       Console.WriteLine("パス:" & testFileObject.FullFileName)     Next   End Sub End Class Public Class TestFile   Private m_shortFileName As String   Private m_fullFileName As String   Public Sub New(ByVal fullPath As String)     Me.m_fullFileName = fullPath     Me.m_shortFileName = System.IO.Path.GetFileName(fullPath)   End Sub   Public ReadOnly Property ShortFileName() As String     Get       Return Me.m_shortFileName     End Get   End Property   Public ReadOnly Property FullFileName() As String     Get       Return Me.m_fullFileName     End Get   End Property   Public Overrides Function ToString() As String     Return Me.ShortFileName   End Function End Class

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

参考URL http://www1.mahoroba.ne.jp/~mitt/dotnet/WindowsForm/Control_ComboBox01.htm http://ja.gotdotnet.com/quickstart/winforms/doc/ControlRef/ComboBoxCtl.aspx など、検索エンジンで探せばわかると思います。 以上 参考まで

popopompom
質問者

補足

こんばんは。 ご回答ありがとうございます。 今回探している方法は出ていないようなのですが、 とても参考になるページを教えて頂いてありがとうございます。 今後、虎の巻の一つとして活用させて頂こうと思います。 ありがとうございました。

関連するQ&A

  • VB.NETコンボボックスのセンタリング

    VB.NETの標準コントロールのコンボボックスを使用して 開発を進めています。 コンボボックスにはセンタリング機能というものはあるのでしょうか?テキストボックスにはTextAlignというプロパティが存在しますが・・・。 存在しないようであれば、プログラム内で数字は右詰め、文字列は左詰めという風に設定したいと思うのですが、やり方がわかりません。 どなたかご存知の方、アドバイスお願いします。

  • コンボボックスのセンタリング

    初めて質問させていただきます。 VBの標準コントロールのコンボボックスを使用して 開発を進めています。 コンボボックスにはセンタリング機能というものはあるのでしょうか?テキストボックスにはTextAlignというプロパティが存在しますが・・・。 存在しないようであれば、プログラム内で数字は右詰め、文字列は左詰めという風に設定したいと思うのですが、やり方がわかりません。 どなたかご存知の方、アドバイスお願いします。

  • ウェブサイトのコンボボックスのアイテムを取得したいVB.NET

    ブラウザに表示されているコンボボックスのアイテムの文字列を取得したいです。 出来ればそのコンボボックスに登録されているものを 全部取得したいのですが、1つだけでも構いません。 a = AxWebBrowser1.Document.forms(0).Elements("ComboBox1").text 上記のような方法で取得しようとしているのですが、 .text の場合はHTMLSelectElementClassのメンバではないというエラーが出てしまいます。 Valueですと選択しているインデックス番号が取得できるのですが、 そうではなくて実際に表示される文字列を取得したいです。 あとこれを取得することが出来た場合、 For Nextで0~10などで AxWebBrowser1.Document.forms(0).Elements("ComboBox1").Value = i で選択を変更しては、取得するということを繰り返して 登録されているアイテム全てを取得しようと思っているのですが、 一度に全部取得する方法がありましたら教えて頂きたいです。 よろしくお願いいたします。

  • VB6.0 リストボックスやコンボボックスについて

    環境VB6.0、WinXPです。 現在VB6.0について、独学で学んでいます。 インターネットにて下記のサイトを見つけました。 http://www4.plala.or.jp/tamo/vb/vb99.html このサイトの課題5と6でつまづいています。 5に関しては、文字を分割して表示するプログラムなのですが、毎回違う値が入ってくることを想定すると、どのようにして一文字ずつリストボックスに表示すれば良いのか分かりません。 6に関しては、コンボボックスの全値を取得できるような方法があるのでしょうか? 初心者なので、コードなど参考になるものを教えていただければ幸いです。 どなたかご教授下さい。お願いいたします。

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

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

  • VB2008でのコンボボックスの扱いについて

    VB2008でのコンボボックスの扱いについて 教えてください。 コード(3桁)と名称をコンボに設定したいの ですが、 例えばコード1桁の時、3桁の時でも後に続く 名称の先頭を揃えたいのですが。 VB6の時は .AddItem Format("01", "@@@!") & "名称"で できたのですが。 VB2008で .Items.Add("01".PadRight(3) & 名称)で 実行すると微妙にずれるのですが。 何か良い方法を教えて頂きたいのですが。

  • データと直結したコンボボックスについて

    初めて質問します。 VB6とオラクルでの開発でコンボボックスを使います。 ユーザーの要望は、途中まで入力した内容に合うデータをコンボボックスのリストに表示して欲しいとのことなのですが、VBに入っている通常のコンボボックスで対応できるんでしょうか? また、出来なければ利用可能なツールなどがありましたら教えてください。

  • 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 = ??????? 果物名以外の表示には収穫量、消費量など計算させるところがあります。

  • 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)) で取得できますが、実際の値を取得する方法がわかりません。 ご存知の方いらっしゃいましたら、ご教授ください。 それと、行毎に違う値(リストデータ)のコンボボックスを作成することはできますでしょうか? 以上です。よろしくお願いします。

専門家に質問してみよう