问题标签 [flowlayoutpanel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何调整表单或 FlowLayoutPanel 的大小以打印大于屏幕尺寸?
我有一个表单,它的主面板是一个 FlowLayoutPanel,这正是我想要打印的(它被设计成看起来像一个格式很好的文档......没有按钮等......你右键单击命令)。
因此,我利用 DrawToBitmap 实现几乎免费的打印...针对该尺寸正确流动其内容。然后,我只使用 DrawToBitmap 将该 FlowLayoutPanel 及其所有内容呈现到打印页面。我什至可以通过将窗口增大到大于页面大小(相同的纵横比)来缩放以适应,然后缩小从 DrawToBitmap 获得的位图。效果很好...
但它仅在您的屏幕大于页面大小时才有效!因为任何将窗体或控件的大小调整为大于屏幕大小 + 任一方向 12 像素的尝试都会被阻止。
啊!!如果您要通过拒绝调整大于屏幕的大小来扼杀它的适用性,为什么要用 DrawToBitmap 的简单性和实用性来取笑我呢?(修辞)
我的问题:
有没有办法绕过这个限制并让 Form 或 FlowLayoutPanel 调整大小大于屏幕?
如果没有,有没有办法到达 FlowLayoutPanel 的滚动表面(不仅仅是滚动到视图中的部分),以便我可以调整它的大小以匹配打印页面,并且可以在其上调用 DrawToBitmap?
如果没有,是否有其他方法可以利用我现有的布局功能进行打印?或者我是否坚持重写所有 WinForms 代码只是为了生成相同的位图,如果我的屏幕比我的打印页面大,它已经生成了?
c# - C# 流布局面板
我希望能够在表单中添加一些进度条(进度条的数量可能因用户而异)。
我编写了这段代码来添加 1 个进度条:
当我运行此代码时,我得到一个 Exception: "Object reference not set to an instance of an object."
。困扰我的是,当我使用 IDE 查看进度条和 flowLayoutPanel 时,它们都不为空。我做错了什么?
c# - C# 断点更改行为
我处于一种奇怪的情况,我意识到如果在我的代码上设置断点,那么它将被触发,否则永远不会调用该方法。我的问题是;如何设置断点来改变 C# 代码与 WinForms 应用程序交互的方式?
罪魁祸首似乎是ScrollableControl.ScrollControlIntoView Method。我已经将 Flowlayoutpanel 的 autoScroll 属性设置为true,并且垂直滚动条是可见的,但它仍然没有区别。
c# - 具有右锚定静态面板的可变高度 FlowLayoutPanel
好好看看这个
我有一个顶部面板,它停靠在Top
我的表单 ( AutoSize == True
, AutoSizeMode == GrowOnly
) 上。在其中,我有一个停靠到( , ) 的FlowLayoutPanel ,以及停靠到( ) 的普通静态面板。静态面板有一个固定的宽度,但它的高度可以被拉伸。FlowLayoutPanel包含许多向右对齐的子元素。Fill
AutoSize == True
AutoSizeMode == GrowOnly
Right
AutoSize == False
我想要它,所以当用户将表单的大小调整到所有 FlowLayout 子级无法容纳在同一“行”上时,FlowLayoutPanel、Top Panel和Static Panel都在高度上增长以适应被截断的子级。行”,可能还有第三、第四等等。
就目前而言(在本例中),可能重叠的孩子被撞到第二条“线”,但没有一个高度可以显示出来。我在这些不同的面板中以各种方式摆弄了各种停靠和自动调整参数。
我认为这不会太难,但我无法仅使用设计时可用的功能来使其工作。也许这是不可能的,或者我错过了一些东西。谢谢你!
c# - 确定动态标签间距
我有一个小程序,flowLayoutpanel1
我在其中放置了许多动态创建的标签,如下所示:
但我希望这些标签彼此之间有某种间隙,这样它们就不会接触,lbl.SetBounds();
而且似乎在这里不起作用。
这是我正在测试的代码?
关于如何完成间距的任何建议?
c# - 如何根据 FlowLayoutPanel 控件中的条目数设置滚动条大小?
我正在使用FlowLayoutPanel
控件,其中我一次只动态加载 40 个控件。但我有 2000 多个控件要添加FlowLayoutPanel
。我们在滚动事件上添加了更多的 40 个控件并删除了之前的 40 个控件等等,它已经成功完成。但问题是FlowLayoutPanel
's 的大小ScrollBar
是基于 40 个控件设置的。所以用户无法理解是否有新的控件。为此,我必须ScrollBar
根据总计数设置 's 大小,并且一次只加载 40 个控件。
这与 中的虚拟模式相同DataGridView
。我想在FlowLayoutPanel
.
winforms - FlowLayoutPanel 导出
我想要一种将 FlowLayoutPanel 的图形内容导出到文件的方法(不要介意什么格式,bmp 可能是最简单的)。我还希望它滚动内容,以便导出的文件包含面板的全部内容。
有没有办法做到这一点?我正在使用 C# WinForms 和 Framework 4。
c# - 如何让 FlowLayoutPanel.AutoSize 与 FlowBreak 一起使用
我有一个 FlowLayoutPanel 的问题,我不知道如何解决它。
我将两个 FlowLayoutPanel 放在另一个里面;第二个内部 flp 内部有 3 个按钮。
FlowLayoutPanel 子级的属性是:
现在我将每个按钮的FlowBreak
属性设置为 true,但是我看到的行为不是我想要的,我希望 FlowLayoutPanel 缩小到按钮的宽度,
更改FlowDirection
为UpToDown
不是一种选择。
任何人都知道为什么 AutoSize 不起作用?
这是代码。
c# - C# winforms 在向 flowlayoutpanel 添加和删除自定义控件时可能出现内存泄漏(taskmanager 中的许多用户对象)
我有一个中型 Winforms 应用程序 (dotNET4.0),我在其上从 flowlayoutpanel 动态添加和删除自定义控件。
根据用户的选择,这些控件的数量会有所不同。
这工作正常,除了我注意到一些内存泄漏。我通过监视任务管理器中的“用户对象”编号来检查这一点。当我将自定义控件添加到 flowlayoutpanel 时,该数字会上升,但在处理这些控件时不会再次下降。
实际上:用户对象的数量下降了很多(可以说从 100% 到 10%:所以 90% 被正确处理,剩下 10% 的内存)......
结论:处理用户控件后,一个或多个对象仍保留在内存中。我的猜测是代表或图像,但我一无所知......会不会是静态的东西?
所以我的实际问题是:我在哪里没有正确地从用户控件中释放内存,我该如何解决这个问题?你们能帮忙吗?
非常感谢提前!
这是我的用户控件:请注意,除了_Costlinereportdata对象之外
的所有内容都可以处理。
(这应该继续使用,因为它在其他部分被链接和使用)
这是我的用户控件的内容(就 winform 控件而言)
这就是我清除所有内容的 flowlayoutpanel 的方式:
这就是我添加控件的方式
我添加了这个块,因为这也为 User 控件中的一个内部控件添加了一个 Delegate(事件)方法。
编辑解决方案
对于那些感兴趣的人,我已将我的代码更新为以下内容:
从 flowlayoutpanel 中删除控件
我还在这里删除了事件的订阅者
处理我的对象
(虽然不处理我的静态图像)
c# - 动态添加组合框到 flowlayoutpanel
我正在为学校做一个项目,但我现在被困住了。我想动态地将组合框添加到我的 flowlayoutpanel 中,这取决于上下数字的值。
因此,如果数字上下值是 2,则动态制作 2 个组合框,但我真的不知道如何做到这一点,这就是我的想法。
但我似乎无法让它工作。