Winform 滚动条不显示在脚本初始化的 Datagridview 上

Posted

技术标签:

【中文标题】Winform 滚动条不显示在脚本初始化的 Datagridview 上【英文标题】:Winform Scrollbar don't show up on script initialized Datagridview 【发布时间】:2021-10-18 16:42:13 【问题描述】:

我的脚本初始化 DataGridView 有问题。在发布此问题之前,我尝试了很多解决方案并进行了大量研究。

问题来了,我用上面的方法看不到滚动条。


public void AddNewPanTab(TabControl tab, ComboBox panIndex)
        
            

            tab.TabPages.Add("Panneau " + tab.TabCount);


            DataGridViewDragNDrop dragNDrop = new DataGridViewDragNDrop();
            DataGridView panGridView = new DataGridView();
            panGridView.Name = "panGridView_" + tab.TabCount;
            
            panGridView.RowTemplate.Height = 24;
            panGridView.Size = new System.Drawing.Size(1375, 458);
            panGridView.Columns.Add("id", "id");
            panGridView.Columns.Add("part_code", "part_code");
            panGridView.Columns.Add("description", "description");
            panGridView.Columns.Add("size", "size");
            panGridView.Columns.Add("manufacturier", "manufacturier");
            panGridView.Columns.Add("distributeur", "distributeur");
            panGridView.Columns.Add("prix", "prix");
            panGridView.Columns.Add("revise", "revise");
            panGridView.Columns.Add("date_revision", "date_revision");
            panGridView.Columns.Add("Quantité", "Quantité");
            panGridView.Columns[0].Width = 100;
            panGridView.Columns[1].Width = 150;
            panGridView.Columns[2].Width = 250;
            panGridView.Columns[3].Width = 100;
            panGridView.Columns[4].Width = 100;
            panGridView.Columns[9].Width = 75;
            dragNDrop.view = panGridView;
            
            panIndex.Items.Add(tab.TabCount - 1);
            panGridView.CellMouseDown += dragNDrop.DataGridView_CellMouseDown;
            panGridView.MouseMove += dragNDrop.dataGridView_MouseMove;
            panGridView.MouseUp += dragNDrop.dataGridView_MouseUp;
            


            
            tab.TabPages[tab.TabCount - 1].Controls.Add(panGridView);
            


        

我试过了

panGridView.ScrollBars = System.Windows.Forms.ScrollBars.Both;

没有任何结果。我可以访问数据网格,因为我填充它并拖放行,并对 DataGridView 中的数据做很多事情。

我检查了 DWG 小于他的父选项卡。

我只是不知道发生了什么。如果我从工具箱中添加一个 dwg,我可以从他的属性中显示或隐藏滚动条,我认为脚本 dwg 也是如此。

也许问题来自父关系,但我不知道。

这里是情况的图片

the image below is my application

【问题讨论】:

为什么会有滚动条?网格中没有数据。什么是 DWG?在 dragNdrop 和 panGridView 之间很难弄清楚你的设计。 oups DGV***,即使填充了网格,我也可以使用鼠标滚轮上下滚动数据行,但滚动条不显示。 我编辑到 DWG 到 DataGridView 也忽略 DragNDrop,因为它与问题无关。即使我删除它。没有变化 仍然很难回答,因为发布的代码不会为我们重现它。可以链接图片吗? 【参考方案1】:

给你……虽然我不知道你做错了什么,因为你的代码不完整……

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TestDGVScroll

    public partial class Form1 : Form
    
        public Form1()
        
            InitializeComponent();

            DataGridView dgv = new DataGridView();
            dgv.ScrollBars = ScrollBars.Both;
            dgv.Dock = DockStyle.Fill;
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("COL"));
            dt.Columns.Add(new DataColumn("COL2"));
            dt.Columns.Add(new DataColumn("COL3"));
            DataRow dr;
            for (int index = 0; index < 100; index++)
            
                dr = dt.NewRow();
                dr["COL"] = index;
                dr["COL2"] = index + 1;
                dr["COL3"] = index + 2;
                dt.Rows.Add(dr);
            

            dgv.DataSource = dt;
            panel1.Controls.Add(dgv);
        
    

Image of DGV with scrollbars

【讨论】:

以上是关于Winform 滚动条不显示在脚本初始化的 Datagridview 上的主要内容,如果未能解决你的问题,请参考以下文章

Jquery.nicescroll()插件:页面初始化滚动条不显示问题

winform 控件过多,结果滚动条拖动速度变慢,请问怎么解决?

推翻滚动条不显示

DuiLib 中滚动条不显示的问题

jpanel放入JScrollPane 高度滚动条不显示

滚动条不显示flutter web