您好,登錄后才能下訂單哦!
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è)資訊頻道,感謝各位的閱讀!
免責(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)容。