日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#Winform怎樣實現(xiàn)動態(tài)生成控件

本文轉載自微信公眾號「UP技術控」,作者conan5566 。轉載本文請聯(lián)系UP技術控公眾號。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務橫縣,十多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

概述

動態(tài)創(chuàng)建添加控件,可以在一個大容器里一次性放入多個控件。例:根據(jù)文本框中輸入的數(shù)字 給flowLayoutPanel1 添加多少個button。窗體設計中,需要什么控件就從工具箱里拖出一個控件“掛”在窗體上。其實,窗體上的控件,不但可以“拖”,還可以用代碼動態(tài)生成。動態(tài)生成控件,對需要相同的大量的控件還是比較有用的。

實現(xiàn)方式

1、加載數(shù)據(jù),往panel添加Label 控件。

 
 
 
 
  1. private void LoadRoomType()
  2.         {
  3.             DataTable dtRoomType = _roomTypeBLL.GetModelList("", "Code");
  4.             pnlRoomType.Controls.Clear();
  5.             int padding = 5;
  6.             int x = padding, y = padding;
  7.             pnlRoom.Controls.Clear();
  8.             foreach (DataRow item in dtRoomType.Rows)
  9.             {
  10.                 Label lbl = new Label();
  11.                 lbl.Text = string.Format("{0}", item["Names"]);
  12.                 lbl.Image = btnRoomType.Image;
  13.                 lbl.Cursor = Cursors.IBeam;
  14.                 lbl.TextAlign = btnRoomType.TextAlign;
  15.                 lbl.Font = btnRoomType.Font;
  16.                 lbl.ForeColor = btnRoomType.ForeColor;
  17.                 lbl.Size = btnRoomType.Size;
  18.                 lbl.Location = new Point(x, y);
  19.                 lbl.Tag = item;
  20.                 lbl.Click += new EventHandler(lbl_Click);
  21.                 lbl.MouseEnter += new EventHandler(lbl_MouseEnter);
  22.                 lbl.MouseLeave += new EventHandler(lbl_MouseLeave);
  23.                 x += lbl.Width + padding;
  24.                 if (x + lbl.Width > pnlRoomType.Width)
  25.                 {
  26.                     x = padding;
  27.                     y += lbl.Height + padding;
  28.                 }
  29.                 pnlRoomType.Controls.Add(lbl);
  30.             }
  31.             int height = y + (x != padding ? pnlRoomType.Height : 0) + padding;
  32.             int addHeight = height - pnlRoomType.Height;
  33.             pnlRoom.Top = pnlRoom.Top + addHeight;
  34.             pnlRoom.Height = pnlRoom.Height - addHeight;
  35.             pnlRoomType.Height = pnlRoomType.Height + addHeight;
  36.             if (dtRoomType.Rows.Count > 0)
  37.                 LoadRoomByTypeID(dtRoomType.Rows[0], 0);
  38.         }

2、定義Label 的點擊事件。

 
 
 
 
  1. void lbl_Click(object sender, EventArgs e)
  2.         {
  3.             try
  4.             {
  5.                 Label lbl = sender as Label;
  6.                 DataRow row = lbl.Tag as DataRow;
  7.                 LoadRoomByTypeID(row, 0);
  8.                
  9.             }
  10.             catch (Exception ex)
  11.             {
  12.                ;
  13.             }
  14.         }

3、定義Label 的鼠標事件。

 
 
 
 
  1. #region lbl_MouseLeave
  2.         void lbl_MouseLeave(object sender, EventArgs e)
  3.         {
  4.             Label lbl = sender as Label;
  5.             lbl.Font = new Font(lbl.Font, FontStyle.Regular);
  6.             lbl.Cursor = Cursors.Default;
  7.             lbl.ForeColor = btnRoomType.ForeColor;
  8.         }
  9.         #endregion
  10.         #region lbl_MouseEnter
  11.         void lbl_MouseEnter(object sender, EventArgs e)
  12.         {
  13.             Label lbl = sender as Label;
  14.             lbl.Font = new  Font(lbl.Font, FontStyle.Bold);
  15.             lbl.Cursor = Cursors.IBeam;
  16.         }
  17.         #endregion

效果


本文標題:C#Winform怎樣實現(xiàn)動態(tài)生成控件
轉載來于:http://www.5511xx.com/article/djpeodc.html