android stretchpanel控件,TableLayoutPanel动态添加控件及事件

TableLayoutPanel动态添加控件及事件

///

/// 调整画面布局

///

///

name="videoNum">

///

private bool InitializeVideo(int

videoNum)

{

//计算行列

int

rowcol;

if (videoNum <= 0 ||

!int.TryParse(Math.Sqrt(videoNum).ToString(), out rowcol))

{

return false;

}

//计算宽高

int WidthHeight = (int)(MainPanel.Width /

rowcol);

//重新设置表格

//MainPanel为TableLayoutPanel控件

MainPanel.Controls.Clear();

MainPanel.RowCount =

MainPanel.ColumnCount = rowcol;

MainPanel.CellBorderStyle =

TableLayoutPanelCellBorderStyle.Single;

MainPanel.Refresh();

for (int i = 0; i <

MainPanel.ColumnStyles.Count; i++)

{

MainPanel.ColumnStyles[i].SizeType = SizeType.Absolute;

MainPanel.ColumnStyles[i].Width = WidthHeight;

}

for (int i = 0; i < MainPanel.RowStyles.Count; i++)

{

MainPanel.RowStyles[i].SizeType =

SizeType.Absolute;

MainPanel.RowStyles[i].Height =

WidthHeight;

}

//添加控件

for (int

i = 0; i < videoNum; i++)

{

PictureBox

pVideo = new PictureBox();

pVideo.Padding = pVideo.Margin =

new Padding(0);

pVideo.Name = "pVideo" +

i.ToString();

pVideo.Width = pVideo.Height =

WidthHeight;

pVideo.Dock = DockStyle.Fill;

pVideo.BackgroundImage = Resources.bg;

pVideo.BackgroundImageLayout = ImageLayout.Stretch;

pVideo.Click += new EventHandler(pVideo_Click);

MainPanel.Controls.Add(pVideo, i % rowcol, i / rowcol);

}

return true;

}

///

/// 点击图像事件

///

///

///

name="e">

private void pVideo_Click(object sender,

EventArgs e)

{

PictureBox pVideo =

(PictureBox)sender;

//MessageBox.Show(pVideo.Name);

if

(MainPanel.GetColumnSpan(pVideo) == 1)

{

//隐藏其它控件

foreach (Control ctr in

MainPanel.Controls)

{

if (ctr.Name !=

pVideo.Name)

ctr.Visible = false;

}

pos =

MainPanel.GetPositionFromControl(pVideo);

MainPanel.SetCellPosition(pVideo, new TableLayoutPanelCellPosition(0,

0));

MainPanel.SetRowSpan(pVideo,

MainPanel.RowCount);

MainPanel.SetColumnSpan(pVideo,

MainPanel.ColumnCount);

}

else

{

//显示所有控件

foreach (Control ctr in

MainPanel.Controls)

{

ctr.Visible =

true;

}

MainPanel.SetCellPosition(pVideo,

pos);

MainPanel.SetRowSpan(pVideo, 1);

MainPanel.SetColumnSpan(pVideo, 1);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值