提交rbac
提交设置右键错位的bug
This commit is contained in:
163
DH.RBAC/Views/Sys/Permission/IconForm.cs
Normal file
163
DH.RBAC/Views/Sys/Permission/IconForm.cs
Normal file
@ -0,0 +1,163 @@
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user