DataGridView绘图显示黑色区域

本文关键字:区域 黑色 显示 绘图 DataGridView | 更新日期: 2023-09-27 18:13:40

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

这个应用程序使用datagridview和我添加组合框+文本框到datagridview。

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

查看问题的图像

它在标准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();
            }
        }

有什么建议吗?

DataGridView绘图显示黑色区域

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

但是,它解决我的问题。

:右键单击。exe程序(在您构建之后)并禁用HIGH DPI