我目前正在佈局玩弄並做了一個試驗項目中,我構建,其顯示含有一個TableLayoutPanel三行面板的形式:爲什麼設置MinimumSize會破壞表格佈局?
- 一個文本框
- 按鈕
- 一應該佔據剩餘垂直空間的佔位符標籤。
此測試正常工作,但如果我將文本框的最小大小設置爲例如(400,200),我不能再看到按鈕。表格佈局中的第一行不應該包含AutoSize的內容?請注意, 明確將RowStyles設置爲SizeType.AutoSize
不會更改任何內容。
無最小尺寸集:
最小尺寸組:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace LayoutTest
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var sampleForm = new Form();
var samplePanel = new Panel() { Dock = DockStyle.Fill };
var sampleTextBox = new TextBox() { Dock = DockStyle.Fill };
// This line breaks the layout
//sampleTextBox.MinimumSize = new Size(400, 200);
var sampleButton = new Button() { Dock = DockStyle.Fill };
var panelLayout = new TableLayoutPanel() { Dock = DockStyle.Fill };
panelLayout.Controls.Add(sampleTextBox, 0, 0);
panelLayout.Controls.Add(sampleButton, 0, 1);
// Add a placeholder label to take up the remaining space
panelLayout.Controls.Add(new Label() { Text = String.Empty, Dock = DockStyle.Fill });
samplePanel.Controls.Add(panelLayout);
sampleForm.Controls.Add(samplePanel);
Application.Run(sampleForm);
}
}
}
您希望TableLayoutPanel能夠在表格佈局中完成它的工作,佈局控制,而不必告訴它*如何完成工作。添加行。這由於TextBox.GetPreferredSize()返回值而出錯。使用設計師。 –