private void LoadRoomType() { // 堆代码 duidaima.com 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 的点击事件
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 的鼠标事件
#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
效果