2016-10-18 50 views
0

私はwinforms c#.net 4.0を使用してアプリケーションを開発しています。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

答えて

関連する問題