1

インターネットのいたるところに答えがありますが、うまくいかず、何が間違っているのか疑問に思っています。

私はDataGridView1 列の を持っていますColumn1。これは列の名前であり、テキストなどではありません。

    private void InitializeComponent()
    {
        this.dataGridView1 = new System.Windows.Forms.DataGridView();
        this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
        ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
        this.SuspendLayout();
        // 
        // dataGridView1
        // 
        this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
        this.Column1});
        this.dataGridView1.Name = "dataGridView1";
        // 
        // Column1
        // 
        this.Column1.HeaderText = "Column1";
        this.Column1.Name = "Column1";
        .....
    }

    public Form1()
    {
        InitializeComponent();

        // Works
        DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
        row.Cells[0].Value = "AAAAA";
        dataGridView1.Rows.Add(row);

        // Fails
        row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
        row.Cells["Column1"].Value = "AAAAA"; // Argument Exception: "Column named Column1 cannot be found"
        dataGridView1.Rows.Add(row);
    }

説明してください?どうもありがとう!

4

1 に答える 1

2

行は Datagridview の一部ではないため、列を見つけることができません。それを最初にdatagridviewに追加してから、列名を使用して値を割り当てるか、列のインデックスでセルをアドレス指定します。

row.Cells[dataGridView1.Columns["Column1"].Index].Value = "AAAAA";
于 2012-12-03T19:44:20.777 に答える