10

DataGridView内にあるComboboxの選択されたアイテムテキストを取得するには? 以下のコードを使用してみました:

dataGridView1.Rows[1].Cells[1].Value.ToString()

ただし、これにより、コンボボックスで選択されたアイテムのテキストではなく、このセルに関連付けられた値が得られます。私もこれを試しました:

DataGridViewComboBoxCell cell = dataGridView1[1,1] as DataGridViewComboBoxCell;
string value = cell.Value.ToString();

しかし、これも役に立ちませんでした。

よろしくお願いします。前もって感謝します!

編集:

たとえば、テキストがNoYesで、値がそれぞれ 0 と 1 のコンボボックスがあるとします。ここで取得したいのは、コンボボックスが変更されたときのテキストYesまたはです。Noしかし、私が得ているのは、上記のコードを使用した値 0/1 です。物事が明確になることを願っています。

アップデート:

わかりました、私はこの問題に取り組んでおり、多くの努力と仲間のメンバーの助けを借りて、問題を解決し、必要な解決策を得ることができました:

解決策は次のとおりです。

string SelectedText = Convert.ToString(dataGridView1.Rows[0].Cells[1].FormattedValue.ToString());
4

5 に答える 5

17

DataGridView でコンボボックスの選択された値と選択されたテキストを取得するには、次のコードを試してください

string SelectedText = Convert.ToString((DataGridView1.Rows[0].Cells["dgcombocell"] as DataGridViewComboBoxCell).FormattedValue.ToString());
int SelectedVal = Convert.ToInt32(DataGridView1.Rows[0].Cells["dgcombocell"].Value);
于 2012-11-20T09:54:35.800 に答える
4

この方法で、その文字列値をセルから引き出すことができました。

DataGridViewComboBoxCell dgvcmbcell = dataGridView1[1, 0] as DataGridViewComboBoxCell;
String text = dgvcmbcell.EditedFormattedValue.ToString();

これを理解する最も簡単な方法は、デバッガーを使用して dgvcmdcell オブジェクトを調べることです。この中に、展開可能なノード「ベース」があります。展開して目を通すだけで、必要な情報がすべて見つかります。

于 2012-11-19T07:32:51.717 に答える
0

datagridviewで現在選択されているテキストにアクセスするには、Combobox列のCurrencyManagerへの参照が必要です。CurrencyManagerはお金とは何の関係もありませんが、代わりに列とそのデータソース間のバインディングを管理します。CurrencyManagerは、コンボボックスの現在の選択が何であるかを教えてくれます。

Tehコード:

    CurrencyManager cm = (CurrencyManager)DataGridView1.BindingContext[((System.Windows.Forms.DataGridViewComboBoxColumn)DataGridView1.Columns[0]).DataSource];

注:列をコンボボックスにキャストする必要はありません。渡す列を表示するためにキャストしました。インデックス0を使用しましたが、コンボボックス列の実際のインデックスであるインデックスを使用します。

これで、通貨マネージャーを使用して、その列のデータグリッドの現在の選択にアクセスできます(これは、渡した列であるため)。

    cm.Current; //returns the current selection whatever that is

したがって、私の場合、コンボボックス列のデータソースはChoiceというクラスでしたが、Choiceは次のようになります。

    public class Choice
    {
            public string Text
            {
                get;
                set;
            }
    }

cm.Currentプロパティにアクセスすると、選択クラスのインスタンスが返されます。これで、選択クラスのTextプロパティにアクセスして、選択された値を確認できます。あなたは明らかにこれをあなたの特定の状況に適応させなければならないでしょう。これがお役に立てば幸いです。

于 2012-11-21T22:53:45.987 に答える
-1

あなたはこれを試すことができます:-

dataGridView1.CurrentRow.Cells[0].Value.ToString();

表示する必要のあるセルの列にインデックスを付けます。これは、のインデックスですComboBoxColumn

于 2012-11-16T14:59:31.010 に答える