您的位置:首页 > 编程语言 > PHP开发

【20090312-03】TableLayoutPanel 控件

2009-03-12 12:04 441 查看
TableLayoutPanel 类

注意:此类在 .NET Framework 2.0 版中是新增的。
表示一个面板,它可以在一个由行和列组成的网格中对其内容进行动态布局。
命名空间:System.Windows.Forms

程序集:System.Windows.Forms(在 system.windows.forms.dll 中)

Code

public partial class tableLayoutPanelForm : Form

{

public tableLayoutPanelForm()

{

InitializeComponent();

}

private void tableLayoutPanelForm_Load(object sender, EventArgs e)

{

this.panel1.AutoScroll = true;

this.panel1.BorderStyle = BorderStyle.FixedSingle;

TableLayoutPanel tabPanel = new TableLayoutPanel();

tabPanel.ColumnCount = 2;

this.panel1.Controls.Add(tabPanel);

}

int iClickedTimes = 0;

//每点击一次 新增如下结构

//btn1 btn2

// btn3

//btn1跨两行

private void button1_Click(object sender, EventArgs e)

{

TableLayoutPanel tabPanel = (TableLayoutPanel)(this.panel1.Controls[0]);

tabPanel.RowCount = (iClickedTimes + 1) * 2; //再增两行

//增加button1

Button btn1 = new Button();

btn1.Name = "button" + (iClickedTimes * 3 + 1).ToString();

btn1.Text = "buttonText"+ (iClickedTimes*3+1).ToString();

btn1.Height = btn1.Height * 3;

btn1.Click += new EventHandler(btn1Click);//事件

tabPanel.Controls.Add(btn1, 0, iClickedTimes*2);

tabPanel.SetRowSpan(btn1, 2);//跨两行

//增加button2

Button btn2 = new Button();

btn2.Name = "button" + (iClickedTimes * 3 + 2).ToString();

btn2.Text = "buttonText" + (iClickedTimes * 3 + 2).ToString();

btn2.Click += new EventHandler(btn2Click);

tabPanel.Controls.Add(btn2, 1, iClickedTimes * 2);

//增加button3

Button btn3 = new Button();

btn3.Name = "button" + (iClickedTimes * 3 + 3).ToString();

btn3.Text = "buttonText" + (iClickedTimes * 3 + 3).ToString();

btn3.Click += new EventHandler(btn3Click);

tabPanel.Controls.Add(btn3, 1, iClickedTimes * 2 + 1);

tabPanel.Size=new Size(200, (iClickedTimes + 1) * 2 * 50);

iClickedTimes++;

}

//自身的Name

private void btn1Click(object sender, EventArgs e)

{

Button btn1 = (Button)sender;

MessageBox.Show(btn1.Name);

}

//通过命名规则 得到其对应btn1的Text

private void btn2Click(object sender, EventArgs e)

{

Button btn2 = (Button)sender;

string btn2ID = btn2.Name.Substring(6);//去掉Name中的button

//其对应btn1的Name为

string btn1Name = "button" + Convert.ToString((Convert.ToInt32(btn2ID) - 1));

//

TableLayoutPanel tabPanel = (TableLayoutPanel)(this.panel1.Controls[0]);

string btn1Text = ((Button)(tabPanel.Controls[btn1Name])).Text;

MessageBox.Show(btn1Text);

}

//删除其所在行列 btn1,btn2,btn3

private void btn3Click(object sender, EventArgs e)

{

Button btn3 = (Button)sender;

TableLayoutPanel tabPanel = (TableLayoutPanel)(this.panel1.Controls[0]);

//一种删除方法 得到其对应btn1 btn2的Name

string btn3ID = btn3.Name.Substring(6);

string btn1Name = "button" + Convert.ToString((Convert.ToInt32(btn3ID) - 2));

string btn2Name = "button" + Convert.ToString((Convert.ToInt32(btn3ID) - 1));

tabPanel.Controls.Remove(btn3);

tabPanel.Controls.Remove(tabPanel.Controls[btn2Name]);

tabPanel.Controls.Remove(tabPanel.Controls[btn1Name]);

}

}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: