标签: tablelayoutpanel

以编程方式更改行/列范围(tablelayoutpanel)

我有一个tablelayoutpanel.2x2 - 2列2行.

例如,我在第1行第二列中添加了一个按钮button1.button1的dock属性设置为Fill.VS Designer允许设置button1的列/行范围属性.

我希望可用性以编程方式更改button1的 行跨度属性,因此它可以填充所有第二列(1行和第2行)和可用性以将其设置回来.

怎么样?

c# tablelayoutpanel winforms

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

获取Windows窗体中TableLayoutPanel单元格的高度和宽度

在Windows窗体中使用TableLayoutPanel.我正在使用RowStyles和ColumnStyles,SizeType分别为AutoSize和Percent.我需要找出放置特定控件的单元格的绝对高度和宽度.

TableLayoutPanelCellPosition pos = tableLayoutPanel1.GetCellPosition(button1);
int height = (int)tableLayoutPanel1.RowStyles[pos.Row].Height;
int width = (int)tableLayoutPanel1.ColumnStyles[pos.Column].Width;
Run Code Online (Sandbox Code Playgroud)

上面,我的高度为0. RowStyle的SizeType为AutoSize.同样,我得到了33.33.ColumnStyle设置为SizeType为Percent,Size = 33.33.

我需要获得单元格的绝对大小(以像素为单位).

.net c# tablelayoutpanel cell winforms

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

隐藏并显示TableLayoutPanel的单元格

我的tablelayout面板有一列三行.(一个停靠在每个单元格中的"填充"面板.)

现在我希望能够隐藏/显示行.我希望任何时候只能看到一行(根据用户选择的一些单选按钮),我想调整大小,以便填充TableLayoutPanel的所有区域.

我怎样才能做到这一点?有什么想法吗?

c# tablelayoutpanel winforms

15
推荐指数
5
解决办法
4万
查看次数

垂直对齐TableLayoutPanel中的控件

有没有办法让TableLayoutPanel上的控件的文本内容正确对齐?我在第0列中有标签,在第1列中有文本框(或偶尔使用ComboBox或NumericUpDown控件),但标签中的文本通常是大多数行上的一个像素或两个(垂直).

c# tablelayoutpanel vertical-alignment winforms

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

TableLayoutPanel显示垂直滚动

我有TableLayoutPanel用于动态创建AutoScroll = true的控件.添加新控件时,它工作正常.但是当我删除并且所有控件都可见时,可以看到垂直滚动.这里有一些截图:

预期/正确的滚动可见性:

在此输入图像描述

可见性不正确:

在此输入图像描述

有任何想法吗?

更新:这是一些代码

tableLayoutPanel1.SuspendLayout();
tableLayoutPanel1.RowCount = 0;
tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.AutoScroll = true;
tableLayoutPanel1.Padding = new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0);
foreach (var item in objects)
{
     tableLayoutPanel1.RowCount++;
     tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
     tableLayoutPanel1.Controls.Add(CreateNewItem(item));
 }

 tableLayoutPanel1.RowCount++;
 tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
 tableLayoutPanel1.Controls.Add(CreateAddButton());

 tableLayoutPanel1.ResumeLayout();
Run Code Online (Sandbox Code Playgroud)

以及删除代码

tableLayoutPanel1.SuspendLayout();
tableLayoutPanel1.Controls.Remove(item);
tableLayoutPanel1.RowStyles.RemoveAt(0);
tableLayoutPanel1.RowCount--;
tableLayoutPanel1.ResumeLayout();
Run Code Online (Sandbox Code Playgroud)

AutoSize为true,AutoSizeMode为GrowAndShrink

c# scrollbar tablelayoutpanel vertical-scroll vertical-scrolling

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

TableLayoutPanel大小调整

我可能没有使用正确的控件来满足我的需求.我正在填充一个带控件的表,我希望每列自动调整其中包含的控件的大小.例如,一列文本框将比一列复选框宽.由于不同的操作系统,不同的DPI,不同的字体等的复杂性,我不想摆弄测量是否能帮助它.桌子可以水平扩展以适应控件,带有滚动条.如何通过TableLayoutPanel或其他控件实现这一点?

谢谢.

编辑添加代码:

    private void UpdateLocations()
    {
        tableLayoutPanel1.RowCount = CurrentSchedule.location.Length + 1;
        tableLayoutPanel1.ColumnCount = 7;
        int row = 1;
        int timeWidth = TextRenderer.MeasureText("00:00:00x", tableLayoutPanel1.Font).Width;

        Label lab = new Label();
        lab.Text = "Location";
        tableLayoutPanel1.Controls.Add(lab, 0, 0);

        lab = new Label();
        lab.Text = "Arrive";
        tableLayoutPanel1.Controls.Add(lab, 1, 0);

        lab = new Label();
        lab.Text = "Depart";
        tableLayoutPanel1.Controls.Add(lab, 2, 0);

        lab = new Label();
        lab.Text = "Pass?";
        tableLayoutPanel1.Controls.Add(lab, 3, 0);

        lab = new Label();
        lab.Text = "Path";
        tableLayoutPanel1.Controls.Add(lab, 4, 0);

        lab = new Label();
        lab.Text …
Run Code Online (Sandbox Code Playgroud)

c# size tablelayoutpanel winforms

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

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

这个问题比解释的更好,所以我在Visual Studio 2010项目中设置了一个git repo,用于查看实际问题.

我有一个项目,我已经将一个ComboBox控件(comboField)添加到TableLayout控件(tableLayoutPanel1).我已经设置了DockComboBox 的属性,Fill以便它填充它所放置的TableLayout控件的单元格.我还设置Dock了TableLayout控件的属性,Fill以便它填充已放置的Form上.ComboBox的宽度目前为193像素.

当我运行窗体并增加其宽度时,ComboBox的大小会增加,如预期的那样.当我减小窗体的大小时,ComboBox的大小会缩小,直到达到原始大小(193像素).此时,ComboBox的宽度不会进一步减小,导致控件的右侧被剪裁.这与我的预期相反:ComboBox的宽度将减少到零,因为没有MinimumSize指定.也没有MinimumSize为表单上的任何其他控件指定,例如TableLayout控件.

如果它是相关的,TableLayout的第一列的宽度设置为Absolute100像素的大小,而TableLayout的第二列的宽度已设置为AutoSize.

任何人都可以解释为什么这种形式的表现与我的期望相反,并建议我如何以我想要的方式工作?任何帮助将非常感激.

.net c# tablelayoutpanel visual-studio-2010 winforms

11
推荐指数
2
解决办法
5655
查看次数

D表单库TableLayoutPanel?

每当我尝试使用D表单库时,我都会遇到它没有的事实TableLayoutPanel- 这使得我几乎不可能创建一个好的GUI.

TableLayoutPanelDFL 有没有实施?
如果没有它,人们通常如何使用这个库?

编辑:

使用DFL的另一个程序的链接将是答案的一个很好的奖励.:)

d tablelayoutpanel

10
推荐指数
2
解决办法
408
查看次数

如何避免c#.net中TableLayoutPanel中的闪烁

我使用TableLayoutPanel进行出勤标记.我在此TableLayoutPanel中添加了控件(Panel和Label)并为它们创建了事件.在某些情况下,我已经清除了所有控件,并继续将相同的控件绑定在TableLayoutPanel的不同位置.在重新绑定控件时,TableLayoutPanel会在初始化时闪烁并且速度太慢.

c# tablelayoutpanel winforms

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

Controls.Clear()清理多深?

我正在使用一个TableLayoutPanel动态填充其他的TablelayoutPanels.

现在我想知道当我调用TableLayoutPanel.Controls.Clear动态填充时会发生什么TableLayoutPanel.显然,所有的子布局都被删除了,但他们的孩子怎么样?它们是否也妥善处理,还是需要担心内存泄漏?

我应该在打电话之前递归删除孩子的孩子Clear()吗?

c# tablelayoutpanel clear winforms

10
推荐指数
1
解决办法
5638
查看次数