1

Windowsフォームにデータバインドされたコンボボックスがありました。フォームロードで関数deptload()を使用してデータを入力しました。

public void DeptcomboLoad()
        {
            DataTable dt = depttrans.getDeptName();
            Cmb_Department.DataSource = dt;
            Cmb_Department.DisplayMember = "DepartmentName"; //CHAR
            Cmb_Department.ValueMember = "DepartmentPK"; //INT 
        }

これで、部門の従業員(たとえば、accounts DepartmentName = "Accounts"、DepartmentPK = 23)がログインすると、ComboBoxテキストが "acounts"として選択され、ComboBoxの選択された値を取得するときに23を取得する必要があります。

私は試した

Cmb_Department.selectedtext="Accounts"
Cmb_Department.Text="Accounts"

しかし、それは選択された値を与えていません

誰でも提案できますか

4

3 に答える 3

2

コンボボックスに値を入れようとする代わりに、次のようにGETしてみてくださいSelectedItem

string txt= Cmb_Department.SelectedItem.Text

あるいは単に:

string txt= Cmb_Department.SelectedText
于 2012-12-10T12:39:38.590 に答える
1

次のようなものを発行することで、適切なアイテムを選択することができます。

Cmb_Department.SelectedValue = 23;

23が他の変数、おそらく別のオブジェクト、ローカル変数に由来する場合、あなたのケースで機能するものは何でも。

ここで、選択した値を取得するには、次のステートメントを使用できます。

var val = Cmb_Department.SelectedValue;

選択したテキスト(値に関連付けられたテキスト)を取得するには:

var text = ((DataRow)Cmb_Department.SelectedItem)["DepartmentName"];

私が前述のことを処方している理由は、SelectedTextプロパティが揮発性であり、Textプロパティが設定方法に基づいて常に機能するとは限らないためDropDownStyleです。

ただし、前述のステートメントと同じものを取得すると主張する人もいるかもしれません。

var text = Cmb_Department.Text;
于 2012-12-10T12:42:36.980 に答える
1

コンボボックスの選択した値を変更するには、 SelectedItemプロパティまたはを使用できますSelectedIndex。Index はデータ ソース内の正確な数値である必要があり、Item はデータ ソースからの正確なオブジェクトである必要があります

于 2012-12-10T12:43:38.980 に答える