在Windows窗体中启用滚动条

use*_*391 12 c# winforms

我正在开发一个Windows窗体应用程序.在我的应用程序中,我将控件锚定到表单,以便可以最大化表单,并相应地对控件进行排列.此应用程序应支持不同的DPI值.

我已经将一些控件的锚点设置为底部,右侧和右下角.表单的AutoScroll属性设置为true.当DPI值处于默认值(96)时,控件按预期工作.但问题是如果屏幕加载的DPI较高(如120),即使启用了表单滚动条,也无法看到固定在底部和右下方的控件.

有人可以就这个问题告诉我吗?

问候,Eranga

Els*_*han 30

AutoScroll = True在表单属性中设置

在表单上设置AutoScroll = true

  • @Pரதீப்水平条仅在需要时启用。如果表单不够长,则滚动条将不可见。 (3认同)
  • 这没有启用水平滚动条 (2认同)

小智 11

假设我们有一个具有id"panel1"的面板,
那么我们可以申请as

panel1.autoscroll=true;
panel1.BorderStyle = BorderStyle.FixedSingle;
Run Code Online (Sandbox Code Playgroud)

设置滚动宽度和高度

panel1.SetAutoScrollMargin(int x,int y);
Run Code Online (Sandbox Code Playgroud)


vio*_*313 5

这是一个过时的帖子,但问题仍然存在,相关的帖子还在不断出现SO

我在这里做的是坏事,而不是仅仅因为它是我的Google搜索中的一个而解决一个最近的问题

问题很简单:“为什么该死的滚动条不会出现在我的身上ScrollableControl?”

但是,没有明确的明确答案。因为原因是军团。因为滚动条是否出现在控件上取决于:

  • 不仅取决于它自己的属性设置
  • 还要根据其父控件的状态
  • 以及所有子控件的状态。

容易陷入随机旋转道具值的陷阱,直到奶牛回家。或者在i / webs&hope上查找一些SOfoos。但是,亲爱的。以下是一些相关SO职位,其中包含各种建议的决议:

水平滚动条在DataGridView上不可见

水平滚动条未显示在我的文本框中

如何在Windows窗体中设置滚动条

当包含的控件太大时,如何使滚动条显示在可调整大小的面板中?

C#中的可滚动表单,AutoScroll = true不起作用

如何在VB.Net的面板中获取滚动条?

这里有VS-designer属性页的屏幕截图(如此处),甚至还有一些基于代码的极端解决方案……我的最爱:

在.NET中向面板添加垂直滚动条

如何在Visualbasic.net中添加Vscroll控件以形成表格?

/叹气/


一般答案

..以最小的 github解决方案的形式,以探究一些.NET滚动条伏都教徒:

https://github.com/violet313/TestWinForms/tree/Test1-Body-Panel

这是Visual Studio 2015使用的解决方案.NET4.52 framework

在解决方案中,我试图创建一个表单来响应一些要显示的动态文本数据。这是我最终要寻求的基本布局:

--------------------------------------------------
|      fixed-size form header       |            | 
------------------------------------|   side     |
|                                   |   panel    |
|      dynamic content panel        |   stuff    |
|                                   |            |
--------------------------------------------------
|      fixed-size form trailer                   |               
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我想要表格:

  • 用户无法调整大小
  • 通过以下方式响应动态内容:

    • 尽可能缩小到预定的最小外形尺寸。
    • 长大到预定的最大表格尺寸;然后在动态内容面板上提供适当的滚动条。

抓住它,遍历每一个(从95dccc5开始只有9个)提交,然后以理智和增量的方式测试您的需求。务必在进行可疑的状态更改时分支。

Irl:也许我真是个笨蛋,但花了一个多小时,我读了MSDN尝试(并失败)以弄清.NET表单控件属性意外情况。通过这种方式进行结构化的试错,只花了20分钟就能得到我想要的东西。


y~bwc

我知道这是对的 〜但是谁在乎呢?但是我必须从胸前走开。嘿:

grrr。由于我需要盈利地承担Microsoft合同工作,因此不得不取消&answer这个问题。支付主管可能相对(从开发人员的观点)是非技术的,并且已经阅读了很多东西,包括单词:快速,简单,直截了当,安全等,这给人的印象是.NETish是在公园。我的问题是,我将很难尝试合理地解释为什么他们可能需要为我支付n天的工作费用,以便使一个简单的滚动条出现在响应表单上。

在这个场合,我从来没有走那么远。大声笑。我花了几个小时在MSDN之类的设备上苦苦挣扎,试图实现它。然后打哈欠,放弃,并继续进行务实的实现。被接受了。但是现在是末日了,我是一个无所不能的傻瓜。

  • 外加一张OCD :),让您写出详细的答案 (2认同)

归档时间:

查看次数:

76643 次

最近记录:

6 年,8 月 前