164 lines
4.7 KiB
C#
164 lines
4.7 KiB
C#
|
|
using DH.RBAC.Common;
|
|
using DH.RBAC.Utility.Other;
|
|
using Sunny.UI;
|
|
using System;
|
|
using System.Collections.Concurrent;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DH.RBAC.Page.Sys.Permission
|
|
{
|
|
public partial class IconForm : UIForm
|
|
{
|
|
public IconForm()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
#region 标题栏
|
|
private void btnClose_Click(object sender, EventArgs e)
|
|
{
|
|
FormHelper.subForm = null;
|
|
this.Close();
|
|
}
|
|
private Point mPoint;
|
|
private void titlePanel_MouseDown(object sender, MouseEventArgs e)
|
|
{
|
|
mPoint = new Point(e.X, e.Y);
|
|
}
|
|
|
|
private void titlePanel_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
if (e.Button == MouseButtons.Left)
|
|
{
|
|
this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y);
|
|
}
|
|
}
|
|
|
|
private void btnClose_MouseEnter(object sender, EventArgs e)
|
|
{
|
|
btnClose.BackColor = Color.FromArgb(231, 231, 231);
|
|
}
|
|
|
|
private void btnClose_MouseLeave(object sender, EventArgs e)
|
|
{
|
|
btnClose.BackColor = Color.Transparent;
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 画面加载,读取用户信息,显示在界面上
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void IconForm_Load(object sender, EventArgs e)
|
|
{
|
|
backgroundWorker1.RunWorkerAsync();
|
|
timer1.Start();
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 确定按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnConfirm_Click(object sender, EventArgs e)
|
|
{
|
|
DialogResult = DialogResult.OK;
|
|
}
|
|
|
|
|
|
private readonly ConcurrentQueue<Label> FontAwesomeV4Labels = new ConcurrentQueue<Label>();
|
|
|
|
/// <summary>
|
|
/// 后台加载Label
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
|
|
{
|
|
foreach (KeyValuePair<string, int> keyValue in IconDict.MyIconDict)
|
|
{
|
|
FontAwesomeV4Labels.Enqueue(CreateLabel(keyValue.Key, keyValue.Value));
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 创建Label
|
|
/// </summary>
|
|
/// <param name="name"></param>
|
|
/// <param name="icon"></param>
|
|
/// <returns></returns>
|
|
private Label CreateLabel(string name, int icon)
|
|
{
|
|
Label lbl = new Label
|
|
{
|
|
Name = name,
|
|
AutoSize = false,
|
|
Size = new Size(45, 45),
|
|
ForeColor = UIColor.Blue,
|
|
Image = FontImageHelper.CreateImage(icon, 40, UIFontColor.Primary),
|
|
ImageAlign = ContentAlignment.MiddleCenter,
|
|
TextAlign = ContentAlignment.MiddleLeft,
|
|
Margin = new Padding(2),
|
|
Tag = icon
|
|
};
|
|
lbl.MouseDown += lbl_MouseDown;
|
|
return lbl;
|
|
}
|
|
|
|
public string IconName { get; set; }
|
|
public int SymbolIndex { get; set; }
|
|
private Label lastLabel;
|
|
|
|
/// <summary>
|
|
/// Label点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void lbl_MouseDown(object sender, EventArgs e)
|
|
{
|
|
if (sender is Label lbl)
|
|
{
|
|
IconName = lbl.Name;
|
|
SymbolIndex = (int)lbl.Tag;
|
|
if (lastLabel != null)
|
|
{
|
|
lastLabel.Image = FontImageHelper.CreateImage((int)lastLabel.Tag, 40, UIFontColor.Primary);
|
|
}
|
|
lastLabel = lbl;
|
|
lastLabel.Image = FontImageHelper.CreateImage((int)lastLabel.Tag, 40, UIColor.Blue);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 定时器从队列中加载到界面上
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void timer1_Tick(object sender, EventArgs e)
|
|
{
|
|
timer1.Stop();
|
|
while (!FontAwesomeV4Labels.IsEmpty)
|
|
{
|
|
if (FontAwesomeV4Labels.TryDequeue(out Label lbl))
|
|
{
|
|
flowLayoutPanel1.Controls.Add(lbl);
|
|
}
|
|
}
|
|
timer1.Start();
|
|
}
|
|
}
|
|
}
|