C# TableLayoutPanel 一個很實用的案例
阿新 • • 發佈:2019-02-15
在這裡主要講tableLayoutPanel的一個最重要的用法,先看效果
這個看的有點不明白,我換個案例你就明白
直接上程式碼:
Form1裡拖個TableLayoutPanel,在TableLayoutPanel裡拖個Panel即可
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace CentralProject { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void panel1_Paint(object sender, PaintEventArgs e) { // 繪製文字,居中顯示 Graphics g = e.Graphics; Brush br = Brushes.Black; SizeF sizeF = g.MeasureString(drawText, new Font("微軟雅黑", 10)); g.DrawString(drawText, new Font("微軟雅黑", 10, FontStyle.Regular), new SolidBrush(Color.Black), new PointF((panel1.Width - sizeF.Width) / 2, (panel1.Height - sizeF.Height) / 2)); g.Dispose(); } string drawText = "雙擊選擇文字"; private void panel1_Click(object sender, EventArgs e) { // panel單擊事件,變綠色 panel1.BackColor = Color.Green; } private void panel1_DoubleClick(object sender, EventArgs e) { // 雙擊panel時,在panel裡新增一個comboBox控制元件,並且監聽SelectedIndexChanged事件 ComboBox cc = new ComboBox(); cc.Font = new System.Drawing.Font("宋體",15); cc.Dock = DockStyle.Fill; cc.Items.AddRange(new string[]{"hello","world"}); panel1.Controls.Add(cc); cc.SelectedIndexChanged += cc_SelectedIndexChanged; } void cc_SelectedIndexChanged(object sender, EventArgs e) { // 獲取文字,panel移除控制元件 drawText = (sender as ComboBox).Text; panel1.Controls.Clear(); } private void Form1_Load(object sender, EventArgs e) { } } }
其他問題:
控制元件在TableLayoutPanel單元格的位置
1 居中,設定控制元件Anchor為None
2 其他位置,最好先添加個Panel,再在panel裡新增控制元件,再來設定控制元件的位置