基本信息
源码名称:winform插件框架设计源码
源码大小:0.42M
文件格式:.rar
开发语言:C#
更新时间:2016-04-23
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WinDemo.Core;
namespace WinDemo
{
public partial class FrmMain : Form, ILoadForm
{
public FrmMain()
{
InitializeComponent();
}
private void FrmMain_Load(object sender, EventArgs e)
{
PluginLoader.LoadAllPlugins();
InitPlugin();
}
private void InitModule(Iplugin plugin)
{
PictureBox picture = new PictureBox();
picture.BackColor = System.Drawing.Color.Transparent;
picture.Image = plugin.ModulePicture;
picture.InitialImage = null;
picture.Dock = DockStyle.Left;
// picture.Location = new System.Drawing.Point(42, 12);
picture.Size = new System.Drawing.Size(65, 71);
picture.TabStop = false;
panelTop.Controls.Add(picture);
picture.MouseEnter = (sender, e) =>
{
picture.Image = plugin.ModulePictureEnter;
};
picture.MouseLeave = (sender, e) =>
{
picture.Image = plugin.ModulePicture;
};
picture.MouseDown = (sender, e) =>
{
picture.Image = plugin.ModulePictureClick;
};
picture.MouseUp = (sender, e) =>
{
picture.Image = plugin.ModulePictureEnter;
};
picture.Click = (sender, e) =>
{
InitChildNodes(plugin);
};
}
private void InitChildNodes(Iplugin plugin)
{
panelMenu.Controls.Clear();
panelLeft.Controls.Clear();
panelRight.Controls.Clear();
foreach (KeyValuePair<string, EventHandler> item in plugin.ChildNodes)
{
Button btn = new Button();
btn.Text = item.Key;
btn.Click = item.Value;
btn.Dock = DockStyle.Left;
btn.BackColor = System.Drawing.Color.White;
//btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
btn.Font = new System.Drawing.Font("宋体", 9.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
btn.ForeColor = System.Drawing.Color.SteelBlue;
btn.UseVisualStyleBackColor = false;
panelMenu.Controls.Add(btn);
}
}
public void InitPlugin()
{
foreach (Iplugin plugin in PluginLoader.plugins)
{
plugin.FormLoader = this;
InitModule(plugin);
}
}
public void LoadFrm(Form frm)
{
frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
frm.ShowIcon = false;
frm.ShowInTaskbar = false;
frm.BackColor = Color.White;
frm.TopLevel = false;
frm.Dock = DockStyle.Fill;
panelLeft.Controls.Add(frm);
frm.Show();
frm.BringToFront();
frm.Focus();
}
public void LoadNavFrm(Form frm)
{
frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
frm.ShowIcon = false;
frm.ShowInTaskbar = false;
frm.BackColor = Color.White;
frm.TopLevel = false;
frm.Dock = DockStyle.Fill;
panelLeft.Controls.Add(frm);
frm.Show();
frm.BringToFront();
frm.Focus();
}
public void LoadContentFrm(Form frm)
{
frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
frm.ShowIcon = false;
frm.ShowInTaskbar = false;
frm.BackColor = Color.Blue;
frm.TopLevel = false;
frm.Dock = DockStyle.Fill;
panelRight.Controls.Add(frm);
frm.Show();
frm.BringToFront();
frm.Focus();
}
}
}