标签: tablelayoutpanel

Winforms TableLayoutPanel以编程方式添加行

我已经和它斗争了一段时间,并且发现许多其他人也在使用TableLayoutPanel(.net 2.0 Winforms).

问题

我试图采用一个'空白'tablelayoutpanel,它定义了10列,然后在运行时以编程方式添加控件行(即每个单元一个控件).

人们可能认为它应该如此简单

myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */);
Run Code Online (Sandbox Code Playgroud)

但是(对我来说)不添加行.所以也许可以添加一行样式

myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.我已经挖掘并发现myTableLayoutPanel.RowCount使用情况从设计时间变为运行时间,因此myTableLayoutPanel.RowCount++;实际上并没有添加另一行,甚至在添加RowStyle条目之前/之后!

我遇到的另一个相关问题是控件将被添加到显示器,但它们都只是在TableLayoutPanel的点0,0处渲染,另外它们甚至不被限制在它们应该是的Cell边界内.显示在内(即使用Dock = DockStyle.Fill它们仍然显得太大/太小).

有人有一个在运行时添加行和控件的工作示例吗?

.net c# runtime tablelayoutpanel winforms

81
推荐指数
5
解决办法
14万
查看次数

在TableLayoutPanel中动态添加行

在此输入图像描述

我想在c#中的Windows窗体中的TableLayoutPanel中逐行动态添加这些条目

我怎样才能做到这一点?

.net c# tablelayoutpanel

33
推荐指数
2
解决办法
7万
查看次数

在运行时期间动态地向TableLayoutPanel添加控件

我有一个TableLayoutPanel,以两列和0行开头.我需要做的是,动态添加一行并用不同的控件填充两列(它将是面板).在Form1中,我以这种方式创建TableLayout:

TableLayoutPanel Table = new TableLayoutPanel();
Table.Location = new Point(10, 40);
Table.Size = new Size(620,100);
Table.AutoSize = true;
Table.Name = "Desk";
Table.ColumnCount = 2;
Table.RowCount = 0;
Table.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
Table.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.AddRows;
this.Controls.Add(Table);
Run Code Online (Sandbox Code Playgroud)

之后在运行时我会得到我需要多少行,如果它们将填充Panel或某些Label.可能会发生在同一行中,将是Panel,right Label等.

.net c# tablelayoutpanel winforms

28
推荐指数
1
解决办法
8万
查看次数

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

我以编程方式创建了一个继承自TableLayoutPanel类的类Map.Map类添加每个都有背景图像的Tile对象(Panel的子对象).一切都有效,除了我想删除的每个单元格之间有明显的空间.

我环顾四周,但无法弄清楚如何删除TableLayoutPanel中单元格之间的空间.删除它的最简单方法是什么?

c# tablelayoutpanel cellspacing

26
推荐指数
1
解决办法
2万
查看次数

表格布局面板滚动条

给定一个包含2列和多行的表布局面板,如何将滚动条附加到它上面,因为它有时会比表单的大小增长得多.

谢谢

c# user-interface scrollbar tablelayoutpanel

25
推荐指数
2
解决办法
4万
查看次数

如何在表格布局中合并两个单元格

我有两行两列.我希望两个单元格的最后一列合并为一列.由于要求我不使用其他设计选项意味着两个tablelayout,其中第一个表布局有两行.我在C#中使用Winforms.

|                       |                    |
|                       |                    |
|                       |                    |
|_______________________|                    |
|                       |                    |
|                       |                    |
|                       |                    |
Run Code Online (Sandbox Code Playgroud)

c# tablelayoutpanel winforms c#-4.0

24
推荐指数
3
解决办法
4万
查看次数

我如何在TableLayoutPanel的特定单元格中放置多个控件

我正在使用TableLayoutPanel控件,在我的场景中,我必须在一个特定单元格中放置两个控件,这可能吗?如果是这样,请详细说明.

c# tablelayoutpanel winforms

23
推荐指数
2
解决办法
2万
查看次数

删除TableLayoutPanel中的特定行

我有TableLayoutPanel,我以编程方式添加Rows.用户基本上选择了一个属性,然后将其与一些控件一起显示在表中.我想我在这里有一个普遍的理解问题,我会尝试解释它.

每行中的一个控件是"删除"按钮.该按钮应该删除它所在的行.我所做的是向按钮添加一个事件处理程序并设置当前的rowcount.

deleteTalent.Click += (sender, e) => buttonClickHandler(numberOfRows);
Run Code Online (Sandbox Code Playgroud)

处理程序代码:

private void buttonClickHandler(int rowCount)
{
    int count = rowCount - 1;
    for (int i = count; i < (count + 5); i++)
    {
        balanceTable.Controls.RemoveAt(count);
    }
    balanceTable.RowStyles.RemoveAt(count);
    balanceTable.RowCount--;

}
Run Code Online (Sandbox Code Playgroud)

我看了好几个小时,玩了一下.但我找不到一个干净利落的解决方案.我也是C#的新手

这是创建新行的完整函数:

private void addBalanceItems(ToolStripMenuItem item)
{
    int numberOfRows = balanceTable.RowCount;
    if (numberOfRows > 1)
    {
        balanceTable.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize));

    }
    balanceTable.Height = numberOfRows * 45;
    Steigerungsrechner rechner = new Steigerungsrechner();
    string tag = item.Tag.ToString();

    //change that asap :(
    if (tag == "A") { rechner.column …
Run Code Online (Sandbox Code Playgroud)

.net c# tablelayoutpanel

23
推荐指数
2
解决办法
3万
查看次数

如何在tableLayoutPanel中设置columnspan

我使用的tableLayoutPanel是由两行组成的.在第一行我想要两列,在第二行我只需要一列.我怎样才能做到这一点?

c# merge tablelayoutpanel winforms columnspan

20
推荐指数
1
解决办法
3万
查看次数

在tablelayoutpanel中的某些单元格周围绘制边框

不要问为什么,但我要求在a中的某些单元格周围绘制边框TableLayoutPanel.

例如,为简单起见,假设我有1行,5列TableLayoutPanel.每个单元格中都有一个按钮.我想在前3个单元格周围绘制一个框,然后在最后2个单元格周围绘制另一个框.总共有两个盒子.

有关如何实现这一目标的任何建议?

谢谢.

.net c# tablelayoutpanel winforms

18
推荐指数
2
解决办法
2万
查看次数