C# TableLayoutPanel 一个很实用的案例

      在这里主要讲tableLayoutPanel的一个最重要的用法,先看效果

C# TableLayoutPanel 一个很实用的案例_第1张图片

 

  这个看的有点不明白,我换个案例你就明白

C# TableLayoutPanel 一个很实用的案例_第2张图片


直接上代码:

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里添加控件,再来设置控件的位置

    









你可能感兴趣的:(C#自定义控件,C#,开发总结)