溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#中怎么使用Winform動(dòng)態(tài)生成控件

發(fā)布時(shí)間:2021-06-15 10:46:28 來(lái)源:億速云 閱讀:465 作者:Leah 欄目:編程語(yǔ)言

C#中怎么使用Winform動(dòng)態(tài)生成控件,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

實(shí)現(xiàn)方式

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

private void LoadRoomType()         {             DataTable dtRoomType = _roomTypeBLL.GetModelList("", "Code");             pnlRoomType.Controls.Clear();             int padding = 5;             int x = padding, y = padding;             pnlRoom.Controls.Clear();             foreach (DataRow item in dtRoomType.Rows)             {                 Label lbl = new Label();                 lbl.Text = string.Format("{0}", item["Names"]);                 lbl.Image = btnRoomType.Image;                 lbl.Cursor = Cursors.IBeam;                 lbl.TextAlign = btnRoomType.TextAlign;                 lbl.Font = btnRoomType.Font;                 lbl.ForeColor = btnRoomType.ForeColor;                 lbl.Size = btnRoomType.Size;                 lbl.Location = new Point(x, y);                 lbl.Tag = item;                 lbl.Click += new EventHandler(lbl_Click);                 lbl.MouseEnter += new EventHandler(lbl_MouseEnter);                 lbl.MouseLeave += new EventHandler(lbl_MouseLeave);                 x += lbl.Width + padding;                 if (x + lbl.Width > pnlRoomType.Width)                 {                     x = padding;                     y += lbl.Height + padding;                 }                 pnlRoomType.Controls.Add(lbl);             }             int height = y + (x != padding ? pnlRoomType.Height : 0) + padding;             int addHeight = height - pnlRoomType.Height;             pnlRoom.Top = pnlRoom.Top + addHeight;             pnlRoom.Height = pnlRoom.Height - addHeight;             pnlRoomType.Height = pnlRoomType.Height + addHeight;             if (dtRoomType.Rows.Count > 0)                 LoadRoomByTypeID(dtRoomType.Rows[0], 0);         }

2、定義Label 的點(diǎn)擊事件。

void lbl_Click(object sender, EventArgs e)         {             try             {                 Label lbl = sender as Label;                 DataRow row = lbl.Tag as DataRow;                 LoadRoomByTypeID(row, 0);                             }             catch (Exception ex)             {                 ;             }          }

3、定義Label 的鼠標(biāo)事件。

#region lbl_MouseLeave         void lbl_MouseLeave(object sender, EventArgs e)         {             Label lbl = sender as Label;             lbl.Font = new Font(lbl.Font, FontStyle.Regular);             lbl.Cursor = Cursors.Default;             lbl.ForeColor = btnRoomType.ForeColor;         }         #endregion         #region lbl_MouseEnter         void lbl_MouseEnter(object sender, EventArgs e)         {             Label lbl = sender as Label;             lbl.Font = new  Font(lbl.Font, FontStyle.Bold);             lbl.Cursor = Cursors.IBeam;         }         #endregion

看完上述內(nèi)容,你們掌握C#中怎么使用Winform動(dòng)態(tài)生成控件的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI