WinFormTools/WinformDevFramework/Pages/FrmMain.cs

149 lines
5.2 KiB
C#

using Autofac;
using System.Data;
using Tulpep.NotificationWindow;
using WinformDevFramework;
using WinformDevFramework.IServices;
using WinformDevFramework.IServices.System;
using WinformDevFramework.Models;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace WinformDevFarme
{
public partial class FrmMain : Form
{
private Point mPoint;
private ISysMenuServices _sysMenuServices;
private IsysMessageServices _sysMessageServices;
public FrmMain(ISysMenuServices sysMenuServices,IsysMessageServices sysMessageServices)
{
_sysMenuServices = sysMenuServices;
_sysMessageServices = sysMessageServices;
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnMin_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
private void btnMax_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
}
else
{
this.WindowState = FormWindowState.Maximized;
}
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
mPoint=new Point(e.X, e.Y);
}
private void panel1_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 InitData()
{
lblUsername.Text = AppInfo.User.Fullname;
//初始化导航菜单
var tmenus = AppInfo.UserMenus.Where(p=>p.MenuType.Equals("Menu")|| p.MenuType.Equals("Form"));
ImageList imageList = new ImageList();
treeView1.ImageList = imageList;
List<TreeNode> nodes = new List<TreeNode>();
foreach (var menu in tmenus)
{
TreeNode node = new TreeNode(menu.Title);
node.Tag = menu;
node.Name = menu.ID.ToString();
if (File.Exists(Application.StartupPath + "\\" + menu.Icon))
imageList.Images.Add(menu.ID.ToString(), Image.FromFile(Application.StartupPath + "\\" + menu.Icon));
node.ImageKey = menu.ID.ToString();
node.SelectedImageKey = menu.ID.ToString();
nodes.Add(node);
}
foreach (var treeNode in nodes)
{
var menu = (sysMenu)treeNode.Tag;
treeNode.Nodes.AddRange(nodes.Where(p=> menu.ID== ((sysMenu)p.Tag).ParentID).ToArray());
}
treeView1.Nodes.Add(nodes.Where(p => ((sysMenu)p.Tag).ParentID == 0).FirstOrDefault());
this.treeView1.NodeMouseDoubleClick += (o, e) =>
{
var menu = (sysMenu)e.Node.Tag;
if (menu!=null && menu.MenuType.Equals("Form"))
{
var childForm = AppInfo.Container.ResolveNamed<Form>(menu.URL);
childForm.TopLevel = false;
childForm.FormBorderStyle = FormBorderStyle.None;
childForm.Dock = DockStyle.Fill;
childForm.Tag=menu.ID;
if (tabControl1.TabPages[menu.URL] == null)
{
TabPage page = new TabPage(menu.Title);
page.Name = menu.URL;
page.Controls.Add(childForm);
tabControl1.TabPages.Add(page);
tabControl1.SelectedTab = page;
childForm.Show();
}
else
{
tabControl1.SelectedTab = tabControl1.TabPages[menu.URL];
}
}
};
}
private void FrmMain_Load(object sender, EventArgs e)
{
InitData();
}
private void timer1_Tick(object sender, EventArgs e)
{
lblDatetime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
private void timer2_Tick(object sender, EventArgs e)
{
List<sysMessage> messages= _sysMessageServices.QueryListByClause(p => p.IsSend == false && p.ToUserID == AppInfo.User.ID);
foreach (var message in messages)
{
// 创建一个PopupNotifier实例
PopupNotifier popup = new PopupNotifier();
popup.Size = new Size(300, 500);
popup.TitleText = message.Title;
popup.ContentText = message.Content;
// 设置通知的样式和位置
popup.AnimationDuration = 500;
popup.Delay = 3000;
popup.AnimationInterval = 20;
popup.Popup();
message.IsSend = true;
message.SendTime=DateTime.Now;
_sysMessageServices.Update(message);
}
}
}
}