Tag: tablelayoutpanel

TableLayoutPanel的控制列属性

我注意到添加到TableLayoutPanel的每个控件都有“Column”和“Row”属性。 如何通过代码访问这些属性? 谢谢:)

C#tableLayoutPanel滚动除顶行之外的所有内容

我正在使用带有C#的winforms并查看TableLayoutPanel 是否可以在大桌子上有一个滚动条,但不能让顶行滚动? 它类似于“冻结窗格”选项在Excel中的工作方式。 我只想冻结顶行而不是别的。 另外,我的桌子足够大,我也会有一个水平滚动条。 因此,当我水平滚动时,我需要顶行和其余行同时以相同的速率移动。

列表浏览切换位置

我有一个带有TableLayoutPanel (TLP)的winforms UserControl (UC)。 该面板有2列和1行,并且对接以填充整个UC。 在TLP的每一列中,我有一个GroupBox ,它也设置为dock.Fill 。 最后我在每个组框内都有一个ListView ,它也停靠在填充中。 我在左列中列出了视图A,在右列中列出了视图B. 我在几台计算机上测试了我的应用程序没有任何问题。 但是在一台计算机列表中,视图会被切换,因此显示它们:B | A而不是A | 乙 有没有人知道可能导致这种情况的原因。 如果解释模糊或者这是一些微不足道的事情,我道歉,我以前从未体验过这一点。

以编程方式将边距和/或填充分配给标签

在试图让TableLayoutPanel中的一些标签从它们的单元格的左上角移动到单元格的中心时,我试图尝试添加填充和/或边距。 但是,我没有尝试过任何工作。 这是我尝试过的代码和结果: // Setting the padding just cuts off the bottom part of the text //lbl.Padding = new System.Windows.Forms.Padding(1); // How to set Margin? //lbl.Margin = new System.Windows.Forms.Margin(1); <- This mimics "Padding" but is not recognized //lbl.Margin = new Thickness(6); <- This is the only example I could find, but it's for WPF

在Windows窗体中删除tablelayoutpanel中的单元格之间的间距?

我以编程方式创建了一个inheritance自TableLayoutPanel类的类Map。 Map类添加每个都有背景图像的Tile对象(Panel的子对象)。 一切正常,除了每个单元格之间有一个明显的空间,我想删除。 我环顾四周,但无法弄清楚如何删除TableLayoutPanel中单元格之间的空间。 删除它的最简单方法是什么?

如何在不遵守TableLayoutPanel规则的情况下在特定位置(以像素为单位)添加新元素?

我已将TableLayoutPanel设置为布局以组织输入。 这是一个好主意,直​​到我意识到我必须添加不应该在表格中的特定单元格中的新元素(它们必须跨越表格单元格,但单元格必须保持不变)

提高tablelayoutpanel的性能

我在WinForm项目中使用tablelayoutpanel ,它对事件响应缓慢。 我提到了这个链接 ,使tablelayoutpanel渲染速度更快。 在我的代码中,tablelayoutpanel中的所有单元格大小相同(100%),我在每个单元格中添加了一个图片picturebox ,并且它的SizeMode属性要拉伸 。 单元格的数量只有9,当我调整面板大小时,它很慢。 代码如下所示。 如果我创建300个单元格,则需要4秒钟来resize。 Void change_tableLayout(int num) //num =9 { CoTableLayoutPanel ctlp = gcnew CoTableLayoutPanel(); //inherited tablelayoutpanel as described in above link global_ctlp.Cursor = System.Windows.Forms.Cursors.WaitCursor; num = Math.Sqrt(num); global_ctlp.Controls.Clear(); global_ctlp.RowStyles.Clear(); global_ctlp.ColumnCount = num; global_ctlp.RowCount = num; for(int i = 0; i < num; i++) //row cell { RowStyle rs […]

如何使用可resize的单元格来制作TableLayoutPanel,例如使用Splitter

得到TableLayoutPanel有1列,单元格所需的N行可以像单元格之间的Splitter组件一样resize。 不使用SplitContainer。 可能是没有TableLayoutPanel的任何其他想法?

.Net TableLayoutPanel – 清除控件非常慢

这很简单。 我有一个基于数据库查询填充控件(只是标签,按钮和一些带按钮的面板)的TableLayoutPanel。 当需要刷新数据时,我使用TableLayoutPanel.Controls.Clear()。 不幸的是,这是一个非常缓慢的操作。 我希望它比填充表格的代码更快,但它至少要慢3到4倍。 我明确地certificate了缓慢是在执行Controls.Clear()时执行此操作,因为在显示消息框之后对TableLayoutPanel执行了一次操作(然后程序返回)。 控制从底部向上明显消失。 当记录集用于重新填充TableLayoutPanel时,从上到下出现的控件的速度几乎比我看到的要快。 我已经在做TableLayoutPanel.SuspendLayout()和ResumeLayout()。 在窗体上使用this.DoubleBuffered = true似乎没有做任何事情。 我可以通过代码处理整个控件并重新创建它,但这是一个很大的痛苦,并使一个漂亮的表单设计器GUI毫无意义。 我将不得不深入研究我在控件上设置的每个属性并为其创建一行代码(虽然我想我可以从设计器代码本身中获取它,但它仍然感觉不对)。 关于如何更快地完成工作的任何想法? 我甚至愿意使用除TableLayoutPanel之外的其他方法…我只需要自由地为每个单元格放置多个按钮或禁止它能够跨越表头中的列。 C#在重绘时能否至少冻结整个表格,然后一次全部绘制?

放置在TableLayout中的停靠控件的自动大小不会小于其创建大小

这个问题比解释的更好,所以我在Visual Studio 2010项目中设置了一个git repo ,用于查看实际问题。 我有一个项目,我已经将一个ComboBox控件( comboField )添加到TableLayout控件( tableLayoutPanel1 )。 我已将ComboBox的Dock属性设置为Fill以便它填充已放入的TableLayout控件的单元格。我还将TableLayout控件的Dock属性设置为Fill以便填充Form它被放置了。 ComboBox的宽度目前为193像素。 当我运行窗体并增加其宽度时,ComboBox的大小会增加,如预期的那样。 当我减小窗体的大小时,ComboBox的大小会缩小, 直到达到原始大小(193像素)。 此时,ComboBox的宽度不会进一步减小,导致控件的右侧被剪裁。 这与我的预期相反:ComboBox的宽度将减少到零,因为没有指定MinimumSize 。 没有为MinimumSize上的任何其他控件指定MinimumSize ,例如TableLayout控件。 如果它是相关的,TableLayout的第一列的宽度设置为100像素的Absolute大小,而TableLayout的第二列的宽度已设置为AutoSize 。 任何人都可以阐明为什么这种forms的表现与我的期望相反,并建议我如何以我想要的方式运作? 任何帮助将非常感激。