c# TableLayoutPanel控件应用 动态添加控件及事件

/// <summary>        /// 调整画面布局        /// </summary>        /// <param name="videoNum"></param>        /// <returns></returns>        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;        }        /// <summary>        /// 点击图像事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        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);            }        }

转载于:https://www.cnblogs.com/gaoyoubo/archive/2010/02/01/1965025.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值