我有一个TableLayoutPanel,可以向其中动态添加行。
每行都有一个绝对大小。
我将AutoScroll设置为“ true”,但是当我添加超出TableLayoutPanel显示范围的行时,看不到滚动。
这是设计师代码:
namespace WindowsFormsApplication1
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do …Run Code Online (Sandbox Code Playgroud) 我正在开发一个有很多TableLayoutPanel用途的Winform应用程序.
如果可能的话,我想设置单元格边框的厚度为零或非常小,因为分层使用TableLayoutPanel减少了实际单元格内容的宽度和高度.
我试图在MSDN和谷歌内搜索是徒劳的.任何提示将不胜感激.
我有一些 TableLayoutPanel,其中第一个“层”有 1 列和 10 行,其中一些行包含 UserControl 或另一个具有 2 或 3 列和一些行的 TableLayoutPanel。其中一两个包含另一个 TableLayoutPanel,仅此而已。所以这是嵌套 TableLayoutPanel 的最多 3 个“级别”。其中大部分设置为自动调整大小,因为某些用户控件可能会更改其大小。当表单包含这样一个嵌套的 TableLayoutPanel 时,UserControls“闪烁”,看起来它们加载非常缓慢。
一开始有一个只有一行没有列的 TableLayoutPanel。通过按下按钮,我希望该面板变成5 行 3 列。
private void button_Click(object sender, EventArgs e)
{
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.RowCount = 5;
}
Run Code Online (Sandbox Code Playgroud)
问题是你得到这个结果!
正如您所看到的,使用行和列创建的框在面板中不包含相同的区域。
在 3 列 5 行的情况下,列必须共享 tablelayoutpanel 的 100%,因此每列 30%。5行的情况下,每行必须占20%。
因此,我将接下来的两行代码附加到button_Click 方法中。
this.tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30F));
this.tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
Run Code Online (Sandbox Code Playgroud)
但我得到同样的结果!我缺少什么?
我正在使用TableLayoutPanel来包含我希望在调整窗体大小时自动调整大小的控件.我想知道当表单本身调整大小时,如何使表单的子控件"缩放"大小与表单成比例?尽管TableLayoutPanel会自动调整所包含控件的大小,但这些控件的字体大小保持不变.