C# 在windows窗体中启用滚动条
我正在开发一个windows窗体应用程序。在我的应用程序中,我将控件锚定到窗体上,这样窗体就可以最大化,控件也可以相应地进行安排。此应用程序应支持不同的DPI值 我已经将一些控件的锚点设置为底部、右侧和底部右侧。表单的AutoScroll属性设置为true。当DPI值为on时,默认(96)控件按预期工作。但问题是,如果屏幕以更高的DPI(如120)加载,即使启用了窗体滚动条,也无法看到锚定到底部和右下角的控件 有人能就这个问题给我提建议吗 问候,,C# 在windows窗体中启用滚动条,c#,winforms,C#,Winforms,我正在开发一个windows窗体应用程序。在我的应用程序中,我将控件锚定到窗体上,这样窗体就可以最大化,控件也可以相应地进行安排。此应用程序应支持不同的DPI值 我已经将一些控件的锚点设置为底部、右侧和底部右侧。表单的AutoScroll属性设置为true。当DPI值为on时,默认(96)控件按预期工作。但问题是,如果屏幕以更高的DPI(如120)加载,即使启用了窗体滚动条,也无法看到锚定到底部和右下角的控件 有人能就这个问题给我提建议吗 问候,, Eranga创建一个名为面板的面板,然后执行以
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ரதீப் 水平条仅在需要时启用。若表格不够长,那个么滚动条就看不见了。另外还有一个用于你们的强迫症:)这让你们写了一个详细的答案