海盗谈测试 2013-10-18 08:29 采纳率: 0%
浏览 2048

C#datagridview自定义控件不可编辑后显示不了滚动条

自定义datagridview控件设置可以编辑滚动条能显示出来,可是设置了不可编辑后滚动条就显示不出来了,希望能有解决方法。

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-09-06 16:57
    关注

    该回答引用ChatGPT-3.5,仅为您供参考,不保证完全正确
    在 C# 的 DataGridView 控件中,设置为不可编辑(ReadOnly)时,确实会影响滚动条的显示。这是因为 DataGridView 会根据其内容自动调整滚动条的可见性。


    如果您想在不可编辑模式下仍然显示滚动条,可以尝试以下几种方法:

    1. 设置虚拟模式:
      • 将 DataGridView 的 VirtualMode 属性设置为 true。
      • 然后,实现 DataGridView 的 CellValueNeeded 事件以提供单元格的值。
      • 这样,即使设置为不可编辑,滚动条也会根据虚拟数据的大小进行显示。
    dataGridView1.VirtualMode = true;
    dataGridView1.CellValueNeeded += DataGridView1_CellValueNeeded;
    
    private void DataGridView1_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
    {
        // 根据需要提供单元格的值
    }
    
    1. 显示滚动条:
      • 如果您希望无论如何都显示滚动条,可以手动设置 DataGridView 的 ScrollBars 属性。
      • 将 VerticalScrollBar 属性设置为 DataGridViewScrollBarVisibility.Visible,以显示垂直滚动条。
    dataGridView1.ScrollBars = ScrollBars.Vertical;
    

    请注意,根据 DataGridView 的大小和内容,滚动条的可见性仍可能会有所不同。因此,您可能需要根据实际情况调整 DataGridView 的大小,以确保滚动条始终可见。


    该回答引用NewBing,仅为您供参考,不保证完全正确
    你好,这是 Bing。我找到了一些可能对你有用的信息。

    根据1的介绍,你可以通过创建自定义单元格、列和行来扩展 DataGridView 控件的功能。你可以提供新的编辑功能,具体方法是创建可在单元格处于编辑模式时显示所选控件的派生类型。你也可以通过处理各种 DataGridView 绘制事件来自行绘制单元格和行。


    根据2的介绍,你可以通过在多个属性之间进行选择来轻松地自定义 DataGridView 控件的外观。其中一个属性是 ScrollBars ,它可以设置为 None 、 Horizontal 、 Vertical 或 Both ,以控制水平和垂直滚动条的显示。


    根据3的博客,最主要的原因是在 DataGridView 控件属性中的 ScrollBars 是否设为 Both 。如果设为 None ,则水平和垂直都不显示滚动条。如果设为 Vertical ,则只垂直显示滚动条。如果设为 Horizontal ,则只水平显示滚动条。如果设为 Both ,则水平和垂直方向根据实际需求自动显示滚动条。


    因此,你可能需要检查你的自定义控件是否正确设置了 ScrollBars 属性,以及是否有其他代码或设置影响了滚动条的显示。希望这些信息能对你有所帮助。😊


    源: 与必应的对话, 2023/9/6
    (1) 自定义 DataGridView 控件 - Windows Forms .NET Framework. https://learn.microsoft.com/zh-cn/dotnet/desktop/winforms/controls/customizing-the-windows-forms-datagridview-control?view=netframeworkdesktop-4.8.
    (2) DataGridView 控件 - Windows Forms .NET Framework | Microsoft Learn. https://learn.microsoft.com/zh-cn/dotnet/desktop/winforms/controls/datagridview-control-windows-forms?view=netframeworkdesktop-4.8.
    (3) c#dataGridView控件水平滚动条不显示的原因 - CSDN博客. https://blog.csdn.net/weixin_44899642/article/details/128791899.


    该回答引用文心一言,仅为您供参考,不保证完全正确
    在C#中,如果DataGridView控件设置为不可编辑(即禁用编辑),默认情况下不会显示滚动条。这是因为当数据网格视图处于编辑模式时,滚动条才会出现。然而,我们可以通过设置ReadOnly属性为true来强制显示滚动条。


    下面是一个例子:

    this.dataGridView1.ReadOnly = true;
    

    如果你需要禁止编辑但仍然显示滚动条,你应该设置ReadOnly属性为true。这将允许用户选择和查看数据,但不允许他们编辑。


    如果你仍然遇到问题,我建议你检查你的DataGridView控件是否已经设置了适当的数据源。如果数据源没有数据或者数据不够填满整个数据网格视图,滚动条可能不会显示,因为整个视图都可以在不滚动的情况下看到。


    该回答引用讯飞星火,仅为您供参考,不保证完全正确
    在C#中,当DataGridView控件设置为不可编辑时,滚动条可能不会显示。为了解决这个问题,你可以尝试以下方法:

    1. 设置DataGridView的ReadOnly属性为true,这样即使设置了不可编辑,滚动条仍然会显示。
    dataGridView1.ReadOnly = true;
    
    1. 如果你希望在不可编辑的情况下隐藏滚动条,可以通过设置ScrollBars属性来实现。将Both属性设置为false,这样只会显示垂直滚动条,水平滚动条将被隐藏。
    dataGridView1.ScrollBars = ScrollBars.Vertical;
    
    1. 如果你希望在不可编辑的情况下同时隐藏水平和垂直滚动条,可以将ScrollBars属性设置为None
    dataGridView1.ScrollBars = ScrollBars.None;
    

    希望这些建议能帮助你解决问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料