Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在windows窗体中启用滚动条_C#_Winforms - Fatal编程技术网

C# 在windows窗体中启用滚动条

C# 在windows窗体中启用滚动条,c#,winforms,C#,Winforms,我正在开发一个windows窗体应用程序。在我的应用程序中,我将控件锚定到窗体上,这样窗体就可以最大化,控件也可以相应地进行安排。此应用程序应支持不同的DPI值 我已经将一些控件的锚点设置为底部、右侧和底部右侧。表单的AutoScroll属性设置为true。当DPI值为on时,默认(96)控件按预期工作。但问题是,如果屏幕以更高的DPI(如120)加载,即使启用了窗体滚动条,也无法看到锚定到底部和右下角的控件 有人能就这个问题给我提建议吗 问候,, Eranga创建一个名为面板的面板,然后执行以

我正在开发一个windows窗体应用程序。在我的应用程序中,我将控件锚定到窗体上,这样窗体就可以最大化,控件也可以相应地进行安排。此应用程序应支持不同的DPI值

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

有人能就这个问题给我提建议吗

问候,,
Eranga

创建一个名为
面板
面板
,然后执行以下操作:

panel1.autoscroll  = true;
panel1.BorderStyle = BorderStyle.FixedSingle;
使用此方法设置滚动宽度和高度:

panel1.SetAutoScrollMargin(int x,int y);

在表单属性中设置
AutoScroll=True


这是一篇老文章,但问题仍在继续,相关文章不断出现在
上,所以

我在这里做necro的事情,而不是解决一个最近的问题,因为它是我的首要任务

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

但不可能有明确的答案。因为原因很多。因为滚动条是否显示在控件上取决于:

  • 不仅取决于它自己的属性设置
  • 但也取决于它的父控件的状态
  • 以及任何子控件的状态
在奶牛回家之前,很容易陷入随机旋转道具值的陷阱。或者在i/web上&希望找到一些
SO
foos。但是,天哪。下面是一些相关的
SO
帖子,其中包含各种各样的建议解决方案:

这里有
VS designer
属性页的屏幕截图(如此处所示)&甚至还有一些基于代码的极端解决方案。。。我最喜欢的:

/叹息/


一般答案 …以最小github解决方案的形式,以探索一些.NET滚动条巫术:

这是一个使用
.NET4.52框架的
Visual Studio 2015
解决方案

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

--------------------------------------------------
|      fixed-size form header       |            | 
------------------------------------|   side     |
|                                   |   panel    |
|      dynamic content panel        |   stuff    |
|                                   |            |
--------------------------------------------------
|      fixed-size form trailer                   |               
--------------------------------------------------
我希望表格:

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

    • 尽可能缩小到预定的最小形状尺寸
    • 成长到预先确定的最大形状尺寸;以及随后在动态内容面板上提供适当的滚动条
抓住它,通过每个(从95dccc5开始只有9个)提交,然后以理智和增量的方式测试您的需求。确保在进行可疑状态更改时进行分支

Irl:也许我是个笨蛋,但我花了一个多小时阅读MSDN,试图找出.NET表单控件属性的意外情况。以这种方式进行结构化的试错只花了我20分钟就得到了我想要的


y~bwc

我知道这是一个是的~但是谁在乎呢?但是我必须把它说出来。嘿:

吼叫声必须解开并回答这个问题是因为我需要 以盈利的方式承担微软的合同工作。出纳员可以是 相对而言(从开发者的角度来看),非技术性的,并且已经读了很多书 包括:快速,简单,直接,安全, 等等,带着这样的印象走吧。网上聊天是一种闲逛 公园。我的问题是这样做会有困难 试图合理解释为什么他们可能需要付给我n天的工资 为了在屏幕上显示一个简单的滚动条,需要做大量的工作 响应形式。

在这个场合,我从来没有走那么远。哈哈,我花了几个小时 涉水通过MSDN试图让它发生。然后打了个哈欠, 放弃,继续务实的实施。那是 认可的。但现在是末日了,我是一个强迫症傻瓜,不能让它过去 事情是这样的

我通读了一遍,可以说它为你的问题提供了一个准确而简单的解决方案

我测试了它,它对我很有效

说明:

  • 向项目中添加清单文件(项目-->新项目 -->选择清单类型)
  • 将以下XML添加到app.manifest(可能是另一个名称):
  • 
    真的
    
  • 在调用组件initialize(
    InitializeComponent();
    )的类中添加以下C代码
  • [DllImport(“shcore.dll”)]
    静态外部int SETPROCESSDPIAWARENCE(\u进程\u DPI\u感知值);
    枚举过程DPI意识
    {
    进程_DPI _=0,
    过程系统DPI感知=1,
    进程每监视器DPI感知=2
    }
    
  • 现在只需在InitializeComponent方法上方添加此代码行(默认情况下
    InitializeComponent();
  • setProcessDPIaware(\u进程\u DPI\u感知。进程\u DPI\u不知道);
    
    我不确定您的问题描述与启用或未启用滚动条有什么关系。你是说有滚动条和没有滚动条的表单表现不同吗?这个链接对你有帮助吗?@李斯特先生:是的,先生。在屏幕中看不到锚定在右下角的控件。它们设置在屏幕边缘之外。如果可以启用滚动条,则可以显示滚动条。这没有启用水平滚动bar@Pரதீப் 水平条仅在需要时启用。若表格不够长,那个么滚动条就看不见了。另外还有一个用于你们的强迫症:)这让你们写了一个详细的答案