1

で値を設定した後、プロパティDataGridViewを介して値にアクセスできても、コントロールに表示されません。Value

Value問題は、ComboBoxセルにデフォルトがないことです。

void ComboBoxColumn()
{
    string[] values =  { "one", "two", "three" };
    string columnName = "Test";
    var column = new DataGridViewComboBoxColumn();
    column.Name = columnName;
    column.ValueType = typeof(string);

    foreach(string item in values)
    {
        column.Items.Add(item);
    }

    Grid.Columns.Add(column);

    // problematic part
    foreach(DataGridViewRow row in Grid.Rows)
    {
        row.Cells[columnName].Value = values[0];
    }
}
4

4 に答える 4

1
    void SetValues()
    {
        string[] values = { "one", "two", "three" };
        string columnName = "Test";
        var column = new DataGridViewComboBoxColumn();
        column.Name = columnName;
        column.ValueType = typeof(string);

        foreach (string item in values)
        {
            column.Items.Add(item);
        }

        dataGridView1.Columns.Add(column);
    }

私のマシンでは、このコードが実行されています。ComboBoxColumn をクリックすると、ツリーの値が表示され、いずれかを選択できます。あなたの問題は何ですか?

        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            row.Cells[columnName].Value = values[1];
        }

このコードを追加すると、コンボ ボックスの既定値は値 'two' を示します。

于 2012-01-17T14:06:05.770 に答える
1
    void AddComboColumn()
    {
        string[] values = { "one", "two", "three" };
        string columnName = "Test";
        var column = new DataGridViewComboBoxColumn();
        column.Name = columnName;
        column.ValueType = typeof(string);

        foreach (string item in values)
        {
            column.Items.Add(item);
        }

        dataGridView1.Columns.Add(column);

        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            row.Cells[columnName].Value = values[2];
        }
    }

これらのコードも機能します...チェック、「RandomValue(values);」に問題がある可能性がありますか? 私はコードのこの部分を持っていないので、はっきりとは言えません。PS私のプログラムのデフォルト値==「3」。

于 2012-01-17T14:18:04.883 に答える
0

エラーを再現できません。これが私の サンプルプロジェクトです

問題になる可能性のある他のものを教えてください。

:コードを直接コピーしました(その後、いくつかの行に追加しました)

于 2012-01-17T14:53:54.517 に答える
0

最初に datagridveiw ColDryg でコンボ ボックスの名前を作成し、次に initvalue 関数でこのコードを記述します

  DataGridViewComboBoxColumn ColDryg =
 (DataGridViewComboBoxColumn)Gv_dtails.Columns["ColDryg"];
             ColDryg.DataSource = db.Drugs.ToList();
             ColDryg.ValueMember = "Id";
             ColDryg.DisplayMember ="Arabic_name";

データベースにテーブルがあり、その名前はDrugです

于 2015-03-18T08:29:41.227 に答える