コンボボックスの値の取得に関して

解決


misamisa  2012-10-09 15:38:30  No: 147858  IP: [192.*.*.*]

画面上にコンボボックスを2つ設置(項目はテーブルより取得)し、それらのプルダウンが
選択された際に、その値と取得するような事をしたいと考えていますが、コンボボックスのイベント
としては、何を使えば良いでしょうか?

HPを色々検索した限りでは、SelectedIndexChanged  がありましたが、この場合、どうやら
画面上に2つのコンボボックスが存在すると以下のようなエラーが、、、

《エラー内容》

  型 'DataRowView' から型 'String' への変換は無効です。

《記述内容》

Private Sub CMB_メーカー名_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_メーカー名.SelectedIndexChanged

    Dim IN_CMB_メーカーコード As String
    Dim IN_CMB_部品コード As String

  '選択された部品名称の取得
    IN_CMB_部品コード = CMB_部品名称.SelectedValue
    IN_CMB_メーカーコード = CMB_メーカー名.SelectedValue    ←  ここでエラーとなります。

どのようなイベントを使えば2つのコンボボックスの値を取得する事が可能でしょうか???

教えて下さい。

よろしくお願いします。

編集 削除
shu  2012-10-09 15:47:45  No: 147859  IP: [192.*.*.*]

> どのようなイベントを使えば2つの〜
イベントはそのままでも構いませんが
エラーの内容からSelectedValueがDataRowViewなので
String型変数に設定することが出来ないということです。
多分ComboBoxへの設定をDataSource,DisplayMemberにて
行っていると思いますが、ValueMemberにメーカー名の項目名を
指定するとよいと思います。憶測ですので正しいか分かりません。
詳細を提示された方がよいかと思います。

編集 削除
misamisa  2012-10-10 09:00:43  No: 147860  IP: [192.*.*.*]

shu様、ご回答ありがとうございます。

私の記述の仕方がわかりにくく、申し訳ありません。


コンボボックスの作り方としては、

' コンボボックスにメーカーマスタテーブルを連結する
CMB_メーカー名.DataSource = ds2.Tables("T_メーカーマスタ")
' コンボボックスにメーカー名称を表示する
CMB_メーカー名.DisplayMember = "メーカー名称"
' メーカーコードをSelectdValueで取得する
CMB_メーカー名.ValueMember = "メーカーコード"

というような作り方をしており、既に ValueMember にはメーカーコードが設定されて
います、、、

他には原因は考えられるでしょうか???

教えて下さい。

編集 削除
shu  2012-10-10 10:15:23  No: 147861  IP: [192.*.*.*]

DataSourceへの設定は最後に行わないと
設定段階でのSelectedIndexChanged時に
DisplayMember,ValueMemberが設定されてないので
当該エラーが発生します。
CMB_部品名称でエラーが出てないのでそれはないと思いました。

編集 削除
misamisa  2012-10-15 09:19:00  No: 147862  IP: [192.*.*.*]

shu様、回答が遅くなりまして申し訳ありまん。

なんとか教えて頂いた事を頼りに、解決することができました。

ありがとうございました。

編集 削除
misamisa  2012-10-15 09:20:13  No: 147863  IP: [192.*.*.*]

解決しました。  

ありがとうございました。

編集 削除