0

C#のデータテーブルでdatagridのmutiselectオプションを無効にする方法は?実際には、2つのテーブルAとBがあります。次に、テーブルAから値を選択し、下矢印ボタンをクリックして、選択した行をテーブルAからテーブルBに移動します。

初めて、テーブルAの行を選択し、下矢印ボタンをクリックすると、選択した行を追加できませんが、同じ操作を実行しようとすると、正常に機能します。

これが私のコードスニペットです-これが初めて行を選択して下矢印ボタンをクリックするとポップアップします::行が選択されていません!その後、それは完全に機能します..

private void btnSelect_Click(object sender, EventArgs e)
        {          
            dgvFormFieldsView.MultiSelect = false;        
            DataGridViewSelectedRowCollection selectedRows = dgvFormFieldsView.SelectedRows;
            dgvFormFieldsView.ClearSelection();

            if (selectedRows.Count == 0)
            {
            MessageBox.Show("No rows selected!", "Warning");
            return;
            }

            for (int i = selectedRows.Count -1 ; i >= 0; i--)
            {
                    string fieldLabel = null;
                    string fieldType = null;
                    string tabOrder = null;

                    tabOrder = (string)selectedRows[i].Cells[0].Value;
                    fieldLabel = (string)selectedRows[i].Cells[1].Value;
                    fieldType = (string)selectedRows[i].Cells[2].Value;

                    DataRow newRow = selectedFieldsTable.NewRow();
                    newRow["Field Name"] = fieldLabel;
                    newRow["Field Type"] = fieldType;

                    /*Temp Table*/
                    DataRow newRows = TempTable.NewRow();
                    newRows["Field Name"] = fieldLabel;
                    newRows["Field Type"] = fieldType;

                    if (!selectedFieldsTable.Rows.Contains(new System.Object[] { fieldType, fieldLabel }))
                    {
                       selectedFieldsTable.Rows.Add(newRow);
                       acc = selectedFieldsTable.Rows.Count;
                       temprow = TempTable.Rows.Count;
                       if (temprow < 5)
                       {
                           TempTable.Rows.Add(newRows);
                           //Console.WriteLine(counter);
                           currenttemptablecounter = currenttemptablecounter + 1;
                           Console.WriteLine(currenttemptablecounter);
                       }
                       if (temprow >= 5)
                       {
                           NextSelect.Enabled = true;
                       }
                    }
                    else
                    {
                          MessageBox.Show("Form Field :" + fieldLabel + " already selected", "PDF Perform Info");
                    }
            }
            dgvSelectedFieldsView.DataSource = TempTable;
            dgvSelectedFieldsView.ClearSelection();
            applyFormattingSelectedFieldsTable();
         }

私は何が間違っているのですか?

4

1 に答える 1

1

DataGridViewがfalseに設定されている場合(行ったように)、MultiSelectプロパティを使用する必要がありますが、selectイベントではなく、ウィンドウの初期化(またはデザイナー)で使用します。

于 2013-03-04T10:25:53.907 に答える