2013-11-28 4 views
2

Все, я использовал приведенный ниже код, добавьте флажок «Выбрать все» в DataGridView. Пока все работает нормально. Но все равно проблема с указателем индекса. просмотрите его.Элемент управления внутри вкладка индекса DataGridView

 for (int i = 0; i < 3; i++) 
     { 
      dataGridView1.Rows.Add(); 
      DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[i]; 


      row.Cells[0].Value = true; 
      row.Cells[1].Value = "cell"; 
      row.Cells[2].Value = "cell"; 
     } 
     Rectangle rect = 
      this.dataGridView1.GetCellDisplayRectangle(0, -1, true); 

     checkBox1.Location = rect.Location; 
     checkBox1.Left = 9; 
     checkBox1.Top = 3; 

     dataGridView1.Controls.Add(checkBox1); 

Ниже приведена желаемая настройка заказа на вкладку во время разработки.

enter image description here

Но во время выполнения вкладок .The заказа странно. Порядок вкладок флажка всегда находится за всеми ячейками DataGridView. И если флажок не содержится в сетке. порядок будет прекрасным. он будет следовать порядку проектирования. Есть ли способ исправить это? Благодарю. enter image description here

+0

Вы пытались настроить свойство TabIndex? Когда вы помещаете элементы управления внутри формы, их индексы устанавливаются по умолчанию, чтобы они были помещены. – Iale

+0

Hi lale, Вы когда-нибудь использовали функцию «TabOrder» в дизайнере? Он находится под меню 'View-TabOrder'.And Он выполняет ту же работу, что и свойство TabIndex с кодом. Благодарю. –

+0

Да, я сделал. Я обновил свой ответ – Iale

ответ

0

Я думаю, что порядок сломан, перемещая checkBox1 в коллекцию элементов управления dataGridView. Затем вы должны обрабатывать вкладки внутри этого элемента управления. Это можно сделать, создав пользовательский DataGridView и переопределив метод ProcessTabKey See

Смежные вопросы