2016-07-06 5 views
0

表示するテキスト値と別のコンボボックスをフィルタリングするために必要な数値を含む複数の列を持つデータセットがあります。C3 comboBox異なる表示と値のメンバーですが両方にアクセスする必要があります

  MyComboBox.DisplayMember = "Reason"; 
      MyComboBox.ValueMember = "ReasonID"; 
      MyComboBox.DataSource = MyDataTable; 

私が持っている問題は、コードの一部ですが、コードの別の部分には必要ですが、テキストが必要です。私はIDを取得することができますが、値が変わったときにテキストにアクセスする方法がわかりません。私は以下を試しました

  String test1 = MyComboBox.SelectedValue.ToString(); 
      String test2 = MyComboBox.SelectedText.ToString(); 

Test1は期待どおりのIDです。しかし、test2は ""であり、選択した値の代わりに表示値を与えるプロパティは表示されません。

+0

Windowsフォームのテキストではないでしょうか? ['SelectedItem'](https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selecteditem(v = vs.110).aspx)を試しましたか? 'SelectedText'はあなたの考えではなく、コンボボックスが編集可能な場合、マウスで選択したテキストです。 –

+0

はい私はそれを試みました。結果は "System.Data.DataRowView"でしたが、以下のFabioの答えは私がやろうとしていたものでした。 –

+0

右のアイテムはDataRowViewであり、SelectedItemは選択されたものです。たとえば、 '((System.Data.DataRowView)MyComboBox.SelectedItem)[" Reason "]。ToString()'のように、SelectedItemをその型にキャストして、そこから任意のプロパティを取得できます。 'ComboBox.Text'は問題をより簡単に解決しますが、SelectedItemが何であるかがわかります。 –

答えて

0

使用ComboBox.Text Property

string value = MyComboBox.Text; 

Textプロパティは、あなたのケースで選択した項目のDisplayMemberの値が含まれています。

についてComboBox.SelectedText

MSDN

から コンボボックスの編集可能な部分で選択されているテキストを取得または設定します。

だから、これは右、選択した項目

+0

doh ...私は完全な金髪の瞬間を持っていた。私は欠けていたシンプルなものがなければならないことを知っていました。 –

関連する問題