DataGridView图形显示黑色区域

时间:2016-10-18 02:40:15

标签: c# .net winforms datagridview

我一直在使用winforms c#.net 4.0开发一个应用程序。

此应用程序使用datagridview,我将组合框+文本框添加到datagridview。

在binddata和调整大小操作期间,将在datagridview的底部绘制一个黑色矩形。

see the image of the problems

它在标准DPI上完美运行,但在高DPI上有问题。

这是我的一些关于binddata和调整大小的代码。

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();
            }
        }

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我不知道这是正确的解决方案......

但它解决了我的问题。

这里: Right click on the .exe program (after you build) and Disable HIGH DPI