コンボボックスの値をparamとしてSQL文に渡したいとします。 Winformsのコンボボックスは、値を取得するためのいくつかのオプション、つまりSelectedItem、SelectedText、およびSelectedValueを提供します。このシナリオでは、どれが最も安全な/安全なものか?WinformsのコンボボックスのSelectedItem、SelectedText、またはSelectedValueを使用する必要がありますか?
答えて
SelectedTextは編集可能部分の選択されたテキストを表示し、Selected Itemはオブジェクトを返し、選択したインデックスはインデックスを返します。通常、SelectedValueが抽出され、使用されます。 がCombobox from MSDN
SelectedIndex Gets or sets the index specifying the currently selected item. (Overrides ListControl.SelectedIndex.)
SelectedItem Gets or sets currently selected item in the ComboBox.
SelectedText Gets or sets the text that is selected in the editable portion of a ComboBox.
SelectedValue Gets or sets the value of the member property specified by the ValueMember property. (Inherited from ListControl.)
私はついにこれをテストしました。 SelectedValueを試したとき、それは爆撃されました。ただし、SelectedItemは機能します。 // String Center = comboBoxCenters.SelectedValue。ToString(); - オブジェクトがインスタンス化されていないことを示すエラーメッセージ(とはい、それを実行したときにnullだった) String Center = comboBoxCenters.SelectedItem.ToString(); // < - これは問題なく動作します –
Text
がおそらく最も適しています。これは、ComboBoxから現在選択されているテキストを文字列として取得します。
if (comboBox1.DropDownStyle == DropDownStyle.DropDownList)
{
return comboBox1.GetItemText(comboBox1.SelectedItem);
}
このスタイルでは、ComboBox
からテキストを取得できません。これにより、現在SelectedIndex
の項目から文字列が返されます。
をチェックアウトのSelectedItem安全な選択であるように思われます。
私はこのコードを持っていた:
NRBQConsts.currentSiteNum = listBoxSitesWithFetchedData.SelectedValue.ToString();
... NREに墜落しました。これにそれを変更した後
:
NRBQConsts.currentSiteNum = listBoxSitesWithFetchedData.SelectedItem.ToString();
...それが正常に動作します。
それは3つの事1. モードComboBox.SelectedIndexChanged
結合していないモード
で 2. DropDownStyle 3. 必要な値
に依存します。 DropDownStyle =ドロップダウン
- のSelectedItemは
SelectedTextは= SelectedText
B戻ります "" = = SelectedText
- SelectedValueのが返す戻ります。DropDownStyle = DropDownListコントロール
- のSelectedItemは= SelectedTextが
- SelectedValueのは
使用するデータは、モード(手段バウンド " "
- SelectedTextが返されます="" =戻ります戻りますいくつかのデータソース、つまりSQL Serverテーブルからコンボボックスを作成しています) テーブルの列を次のように選択します。 DisplayMemberとValueMemberと同じ列または別の列。
a。 DropDownStyle =ドロップダウン
- のSelectedItemは= System.Data.DataRowView
- (プロンプト)SelectedValueのは=値ValuMemeber
のSelectedTextは= SelectedText(DisplayMemberの値)
B戻ります戻ります戻ります。 DropDownStyle = DropDownListコントロール
- .SelectedItemが返されます= System.Data.DataRowView(プロンプト)
- .SelectedValueは=値 .SelectedTextが返されます
- = ""
たValueMemberを返します。
注:ComboBoxのテキストを返す.Textを使用することもできます。
結論:
Unboudモード
- .SelectedItemはモード
バウンド
- .SelectedItemはモード
データ最良の選択です。 ValueMemberでは.SelectedValueが最良の選択
bは
が必要です。 DisplayMemberが
- の.text必要とされる最良の選択
- 1. WPF MVVMコンボボックスのSelectedItemまたはSelectedValueのは、調査の少し後に更新
- 2. ComboBox SelectedValueまたはSelectedItemバインディングWPF C#
- 3. WinForms DesignerはCodeBehindのメソッドを実行する必要がありますか?
- 4. Java FXMLは別のウィンドウからコンボボックスをリロードする必要があります
- 5. コンボボックスでDuplicatesをクリアする必要があります。
- 6. iOSはNSMutableArrayまたはNSMutableDictionaryを使用する必要がありますか?
- 7. 私はurandomまたはopenssl_random_pseudo_bytesを使用する必要がありますか?
- 8. 私はsingletableviewを使用する必要がありますか?
- 9. はcaptchaを使用する必要がありますか?
- 10. 私はフォームタグを使用する必要がありますか?
- 11. DreamweaverのSpryを使用する必要がありますか?
- 12. どのレイアウトマネージャを使用する必要がありますか?
- 13. アクティビティのサブクラスを使用する必要がありますか?
- 14. フォントのパスを使用する必要がありますか?
- 15. xlibの "XAllocSizeHints()"を使用する必要がありますか?
- 16. タイプコードのインターフェイスを使用する必要がありますか?
- 17. @synthesizeをまだ使用する必要がありますか?
- 18. は、SelectedItemのコンボボックス
- 19. AppDomain.CurrentDomain.BaseDirectoryまたはSystem.Environment.CurrentDirectoryを使用する必要がありますか?
- 20. Cloudantでセレクタまたはビューを使用する必要がありますか?
- 21. アプリケーションにAsyncTaskまたはIntentServiceを使用する必要がありますか?
- 22. JavaScriptでwindow.navigateまたはdocument.locationを使用する必要がありますか?
- 23. データセットまたはデータテーブルを使用する必要がありますか?
- 24. ビューでディスパッチイベントまたはファイアイベントを使用する必要がありますか?
- 25. JComboBoxでEnumまたはStringを使用する必要がありますか?
- 26. Developer EntityまたはUser Entityを使用する必要がありますか?
- 27. マルチテーブルまたはマルチテーブルを使用する必要がありますか?
- 28. asyncioでプロトコルまたはストリームを使用する必要がありますか?
- 29. GetまたはLoad-nhibernateを使用する必要がありますか?
- 30. RSAProtectedConfigurationProviderまたはMy Own Providerを使用する必要がありますか?
はDropDownStyleプロパティの値は何ですか? –