问题标签 [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.

0 投票
1 回答
1707 浏览

vb.net - 处理 FlowLayoutPanel 内 UserControl 内控件的值更改

我正在制作发票申请。我在 FlowLayoutPanel (pnlEntries) 内的 UserControl (InvoiceEntry) 内有一个标签 (lblCost)。InvoiceEntry 代表发票上的一个行项目,pnlEntries 是发票的“正文”。pnlEntries 可以包含多个 InvoiceEntry 控件。

我正在尝试对每个 InvoiceEntry 控件中的所有 lblCost 值求和以进行小计,并且我希望该小计在成本发生变化时自动更改(例如,订购数量的变化)。当 pnlEntries 中包含的任何 InvoiceEntry 控件的 lblCost.Text 属性发生变化时,是否有办法处理?

发票添加.vb:

发票入口.vb:

0 投票
4 回答
11114 浏览

c# - 在 C# 中的另一个控件值之前添加控件值

我有一个“FlowLayoutPanel”并想向它添加一系列“UserControl”:

mainPanel.Controls.Add(fx);

在旧用户控件之后添加的每个新用户控件,我想在添加的前一个用户控件之前添加新用户控件,我该怎么做?我没有找到类似mainPanel.Controls.AddAt(...)or mainPanel.Controls.Add(index i, Control c)or mainPanel.Controls.sort(...)or ... 的任何功能。

0 投票
2 回答
2777 浏览

c# - c# flowlayourpanel 滚动宽度

我需要更改 ac# winform 的滚动条宽度,FlowLayoutPanel但没有找到方法。

有谁知道?

0 投票
2 回答
12883 浏览

c# - 如何在flowlayout面板中滚动而不在windows窗体中显示滚动条

我正在开发 WinForms 中的触摸屏 POS。

我有一个 flowlayoutpanel 并动态添加按钮,但我不想显示滚动条。

我使用 2 个按钮来滚动,所以请帮助我如何在不显示滚动条的情况下滚动

0 投票
3 回答
26571 浏览

c# - flowlayoutpanel 和水平滚动条问题

我正在使用一个 flowlayoutpanel,每个逻辑都有很多按钮。我在调整窗口大小时遇到​​问题,当窗口变小时,我无法看到所有水平排列的按钮。相反,随着窗口变小,按钮会下降到下一行。谁能帮我解决这个问题?我只希望按钮水平排列,当窗口变小时,有一个水平滚动条。下面是我所拥有的。

0 投票
1 回答
34151 浏览

c# - 在 FlowLayoutPanel 中调整用户控件之间的间距

我正在构建一个 WinForms 应用程序窗口(表单),其中我使用的是 FlowLayoutPanel,其中添加了用户控件。现在我一直在查看 FlowLayoutPanel 和 UserControl 的属性,但似乎找不到与用户控件之间的间距有关的任何内容。我希望用户控件彼此更接近,即使只有几个像素。用户控件本身在 numericUpDown 的任何一侧都没有空格。任何的意见都将会有帮助。

我的流布局面板:

示例流布局面板

0 投票
0 回答
656 浏览

c# - 读取 xml 文件以保存新按钮,然后从该 xml 读取以在程序重新加载时显示新按钮

在我的程序中,我从一开始就有八个按钮(每个按钮都代表房子里的一盏灯)。用户可以在程序中添加一个新按钮(灯)。我在 FlowLayoutPanel(FLP) 中有这些,每次程序关闭时都会保存表单的当前状态,包括 FLP 的位置、其高度和宽度以及按钮的当前信息(包括它们的名称、文本、颜色等)到一个 XML 文件。

如果 FLP 的位置或大小发生变化,当程序重新加载时,它们将被更新,就像您想的那样,如果按钮发生了变化,那么它们将被更新。但是,除了我提供的默认八个按钮之外,如果用户添加一个或几个新按钮,那么它们会保存到 xml 文件中,但程序会重新加载,从该 xml 读取,这些新按钮将被丢弃。

对此有任何想法。

当前代码:读取 XML 文件(来自另一个 .cs 文件)

当前代码:从 XML 文件中读取(这是来自另一个 .cs 文件)

我想我在读取 FLP 的 xml 文件时遗漏了一些东西,但不确定。

添加按钮的代码(来自另一个表单)

从 xml 文件目标读取的代码

0 投票
1 回答
2660 浏览

c# - 如何访问流布局面板中的复选框值?

我正在尝试更新 c# 中 flowlayoutpanel 中的复选框的值。为每个创建的面板生成复选框,并命名为“selected1”。

尝试访问我正在使用的代码中的特定复选框

我试图创建一个 CheckBox 对象并将 Name 属性作为值并得到一个错误说明:

我正在使用的代码是:

我想我可能只是试图以错误的方式访问复选框,就好像我只是尝试访问包含它的面板一样,我可以毫无问题地操作面板。

谢谢,山姆

0 投票
1 回答
2322 浏览

.net - FlowLayoutPanel 可以自动适应可调整大小的面板吗?

我正在尝试创建一个表单,我可以最轻松地将其描述为像资源管理器视图一样,并排有两个面板(左侧是文件夹列表,右侧显示所选文件夹中的文件)。

左侧面板是固定宽度的,并停靠在表单的左侧。它工作正常,在这里不相关。

右侧面板位于左侧面板的右侧,填充表单的其余部分,并锚定顶部、左侧、底部和右侧,以便在调整大小时继续占据整个表单除了左侧面板占据的部分。它还AutoScroll设置为True,每当内容太大而无法容纳时,它会自动显示滚动条。那部分也很好用。

因为我想在不同的时间在右侧面板中显示不同的东西,所以我创建了一个普通Panel的容器,并为每种不同类型的内容使用子面板。任何时候都只能看到这些子面板中的一个。

我(有时)想要在右侧面板中显示的一件事是非常类似于资源管理器中的“图标”视图 - 即一堆文件图标,这FlowLayoutPanel听起来很完美,因为我确实希望它们从左到右排列,然后根据需要换行到新行。

我原以为这正是 aFlowLayoutPanel的设计目的,但我无法让它工作![我将 的Dock属性设置为FlowLayoutPanelFill以便它使用父级中的所有可用空间Panel。]实际发生的是它只在一行中显示所有图标,而从不包装它们。我最终在父级上有一个水平滚动条,Panel因为FlowLayoutPanel它不适合。

我认为这可能是因为Panel包含的父FlowLayoutPanel级没有固定的大小(因为它会随表单增长和缩小),所以我猜当FlowLayoutPanel决定它可以承受的宽度时,它决定它可以是随心所欲。但是,这不是很有帮助。

有什么办法可以说服FlowLayoutPanel它应该只和它的父级一样宽Panel

0 投票
4 回答
748 浏览

c# - Winforms:在 FlowLayoutPanel 的 Layout 事件期间获得的位置属性不反映更新的布局。为什么是这样?

我正在为包含 UserControls 的 FlowLayoutPanel 使用非自动VScrollBar 控件。

我需要找出 FlowLayoutPanel 中的任何控件是否位于其客户区域之外。我想使用此信息来确定 VScrollBar 是否可见。我在 FlowLayoutPanel 的 Layout 事件处理程序方法中添加了以下代码:

下面是 debugTextBox 的输出,它是通过将四个连续的控件添加到控件 2(其 AutoSize 属性设置为 true)而产生的。控件 2 包含在 leftFlowLayoutPanel 中,通过单击其中包含的按钮将控件添加到其中:

  • 表单刚刚加载:
  • 控件底部位置 0: 3
  • 控件1的底部位置:128
  • 控制2的底部位置:253
  • 添加了第一个控件:
  • 控件底部位置 0: 3
  • 控件1的底部位置:128
  • 控制2的底部位置:253
  • 添加了第二个控件:
  • 控件底部位置 0: 3
  • 控件1的底部位置:226
  • 控制2的底部位置:351
  • 添加了第三个控件:
  • 控件底部位置 0: 3
  • 控件1的底部位置:324
  • 控制2的底部位置:449
  • 添加了第四个控件:
  • 控件底部位置 0: 3
  • 控件1的底部位置:422
  • 控制2的底部位置:547

添加第四个控件后,其中一个控件的底部超出其容器的 ClientArea (458) 的高度,并且 controlBelowClientArea 的值被分配为 true。

问题很清楚:我在布局事件期间从 FlowLayoutPanel 获得的值比最终的表单布局落后一步。在我将第四个控件添加到控件 1 之后,它的底部位置应该是 520。

我唯一想到的答案是 Layout 事件发生在正确设置所有属性的值之前。可能在执行任何内置布局逻辑之前调用它。如果是这种情况,是否有更合适的事件我可以处理?