【问题标题】:Changing controls width inside a tableLayout panel更改 tableLayout 面板内的控件宽度
【发布时间】:2012-01-11 18:05:20
【问题描述】:

我正在创建多行文本框并将其放入表格布局面板中:

tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.ColumnStyles.Clear();

tableLayoutPanel1.AutoScroll = true;
tableLayoutPanel1.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
textbox1.Width = tableLayoutPanel1.Width - 100;
textbox1.Height = 150;
textbox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));

只要我在tableLayout 中添加Textbox,它的宽度就会发生变化,它的滚动就会隐藏在表格布局滚动条后面。我尝试了以下代码,但没有成功:

tableLayoutPanel1.ColumnStyles[0].SizeType = SizeType.Percent;
tableLayoutPanel1.ColumnStyles[0].Width=80;

【问题讨论】:

  • 我很困惑。您要添加到名为 listBoxNewInput 的 TableLayoutPanel 的文本框还是未包含在此代码中?它在哪里添加?能贴出完整代码吗?
  • 抱歉,我已经编辑了问题

标签: c# .net winforms user-controls tablelayout


【解决方案1】:

当您设置锚点时,您让表格布局面板 (TLP) 规则文本框的大小。要让文本框负责,您必须告诉 TLP 自动调整行和列的大小。即:文本框所在的行和列应该有SizeType = SizeType.AutoSize

我必须承认,手动编码 TLP 是很困难的。在塑造 TLP 和子控件后,我有时会求助于偷看 Designer.cs 文件,类似于动态发生的事情。

【讨论】:

    猜你喜欢
    • 2013-07-03
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多