2016-10-18 2 views
0

Я разрабатываю приложение, используя winforms C# .net 4.0.Рисунок DataGridView показывает черные области

это приложение использует datagridview, и я добавляю combobox + textbox в datagridview.

Во время операций привязки и изменения размера черный прямоугольник будет рисовать нижнюю часть datagridview.

see the image of the problems

он отлично работает на стандартных DPI, но проблема на высоком DPI.

вот мой код для привязки и изменения размера.

using (Class1.Connection = new OleDbConnection(Class1.ConnString)) 
     { 
      string sql1 = "SELECT tbAuditDetails.AuditNo, tbAuditQuestions.AutoSubcontent, tbAuditQuestions.AutoID, tbAuditQuestions.Questions, tbScore.Description, tbAuditDetails.QuestionID, tbAuditQuestions.QuestAutoID, tbAuditDetails.ScoreID, tbScore.Score, tbAuditQuestions.SubContentID, tbAuditDetails.ProfileID, tbAuditDetails.ScoreRanges, tbAuditDetails.Comments FROM (tbAuditDetails INNER JOIN tbAuditQuestions ON tbAuditDetails.QuestionID = tbAuditQuestions.QuestionID) INNER JOIN tbScore ON tbAuditDetails.ScoreID = tbScore.ScoreID WHERE (([tbAuditDetails.AuditNo] = " + Class1.detailsauditno + ") AND ([tbAuditQuestions.AutoSubcontent] = '" + newautosubcontentid + "') AND ([tbAuditDetails.ProfileID] = " + proid + ")) ORDER BY [tbAuditQuestions.QuestAutoID], [tbAuditDetails.QuestionID]"; 

      Class1.Connection.Open(); 
      oleCommand = new OleDbCommand(sql1, Class1.Connection); 
      oleAdapter = new OleDbDataAdapter(oleCommand); 
      oleBuilder = new OleDbCommandBuilder(oleAdapter); 

      oleDs = new DataSet(); 
      oleAdapter.Fill(oleDs, "tbAuditDetails"); 
      oleTable = oleDs.Tables["tbAuditDetails"]; 

      Class1.Connection.Close(); 

      dataGridView1.DataSource = oleDs.Tables["tbAuditDetails"]; 

      //SET DATAGRIDVIEW 
      dataGridView1.Columns[0].Visible = false; 
      dataGridView1.Columns[4].Visible = false; 
      dataGridView1.Columns[5].Visible = false; 
      dataGridView1.Columns[6].Visible = false; 
      dataGridView1.Columns[7].Visible = false; 
      dataGridView1.Columns[8].Visible = false; 
      dataGridView1.Columns[9].Visible = false; 
      dataGridView1.Columns[10].Visible = false; 

      dataGridView1.Columns[1].HeaderText = " "; 
      dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; 
      dataGridView1.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; 
      dataGridView1.Columns[1].ReadOnly = true; 
      dataGridView1.Columns[1].Width = 40; 
      dataGridView1.Columns[2].HeaderText = "ID"; 
      dataGridView1.Columns[2].Width = 40; 
      dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; 
      dataGridView1.Columns[2].ReadOnly = true; 
      dataGridView1.Columns[3].Width = 600; 
      dataGridView1.Columns[3].ReadOnly = true; 
      dataGridView1.Columns[3].DefaultCellStyle.WrapMode = DataGridViewTriState.True; 

      dataGridView1.Columns[11].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; 
      dataGridView1.Columns[11].HeaderText = "Score"; 
      dataGridView1.Columns[12].Width = 220; 

      for (int iii = 0; iii < dataGridView1.Rows.Count; iii++) 
      { 
       DataGridViewComboBoxCell ComboBoxCell2 = new DataGridViewComboBoxCell(); 

       ComboBoxCell2.Items.Add("0"); 
       ComboBoxCell2.Items.Add("10"); 
       ComboBoxCell2.Items.Add("20"); 
       ComboBoxCell2.Items.Add("30"); 
       ComboBoxCell2.Items.Add("40"); 
       ComboBoxCell2.Items.Add("50"); 
       ComboBoxCell2.Items.Add("60"); 
       ComboBoxCell2.Items.Add("70"); 
       ComboBoxCell2.Items.Add("80"); 
       ComboBoxCell2.Items.Add("90"); 
       ComboBoxCell2.Items.Add("100"); 

       //ComboBoxCell.Items.AddRange(new string[] { "YES", "SOME", "NO", "N/A" }); 
       ComboBoxCell2.FlatStyle = FlatStyle.Standard; 

       this.dataGridView1[11, iii] = ComboBoxCell2; 

       ComboBoxCell2.Dispose(); 
      } 
     } 

Любые предложения?

+0

Проверить это -> http://stackoverflow.com/questions/1300329/derived-datagridview-drawing-problem-shows-black-regions – Haminteu

+0

я уже использую ResumeLayout, но до сих пор проблема , – korong

ответ

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