SuperDesign/Source/开发辅助工具/Controls/MenuRight.cs

162 lines
5.8 KiB
C#
Raw Normal View History

2020-11-28 08:15:13 +00:00
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
using .Manager;
namespace ryPaiban.Model
{
[Description("子标签右键菜单")]
public partial class MenuRight : System.Windows.Forms.ContextMenuStrip
{
public MenuRight()
{
InitializeComponent();
LoadMenu();
}
private DockContent _SourceContent = null;
[Description("菜单所属的子窗体")]
public DockContent SourceContent
{
get { return _SourceContent; }
set
{
if (_SourceContent != value)
{
if (_SourceContent != null)
{
_SourceContent.FormClosing -= _SourceContent_FormClosing;
}
_SourceContent = value;
if (value != null)
{
_SourceContent.FormClosing += _SourceContent_FormClosing;
_SourceContent.TabPageContextMenuStrip = this;
}
}
}
}
private void _SourceContent_FormClosing(object sender, FormClosingEventArgs e)
{
if (Itrycn_Db.IsCloseConfirm)
{
switch (MessageBox.Show("是否确定要关闭?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
{
case DialogResult.Cancel:
e.Cancel = true;
break;
}
}
}
ToolStripMenuItem menu_start = null;
private void LoadMenu()
{
base.Items.Add("关闭本标签").Click += OnClose_Click;
base.Items.Add("除此之外全部关闭").Click += OnCloseAllNoMe_Click;
base.Items.Add("临时重命名").Click += OnRename_Click;
menu_start = (ToolStripMenuItem)base.Items.Add("软件启动时自动打开");
menu_start.Click += OnStart_Click;
base.Opening += MenuRight_Opening;
}
private void MenuRight_Opening(object sender, CancelEventArgs e)
{
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Starts");
mySQL.AddField("Addr", SourceContent.GetType().ToString());
DataSet ds = db.ReadData("select * from Starts where Addr=@Addr", mySQL);
menu_start.Checked = mydb.HaveData(ds);
}
db.Free();
}
private void OnStart_Click(object sender, EventArgs e)
{
if (SourceContent == null) { return; }
ToolStripMenuItem item = (ToolStripMenuItem)sender;
item.Checked = !item.Checked;
DataProvider mydb = new DataProvider();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Starts");
mySQL.AddField("Name", SourceContent.Text);
mySQL.AddField("Addr", SourceContent.GetType().ToString());
mySQL.AddField("EditTime", DateTime.Now);
if (item.Checked)
{
DataSet ds = db.ReadData("select * from Starts where Addr=@Addr", mySQL);
if (!mydb.HaveData(ds))
{
mySQL.AddField("AddTime", DateTime.Now);
db.ExecuteNonQuery(mySQL.GetInsertSQL(),mySQL);
}
}
else
{
db.ExecuteNonQuery("delete from Starts where Addr=@Addr", mySQL);
}
}
db.Free();
}
private void OnClose_Click(object sender, EventArgs e)
{
if (SourceContent == null) { return; }
SourceContent.Close();
}
private void OnCloseAllNoMe_Click(object sender, EventArgs e)
{
if (SourceContent == null) { return; }
switch (MessageBox.Show("是否确定要关闭?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
{
case DialogResult.Cancel:
return;
}
Itrycn_Db.IsCloseConfirm = false;
DockContentCollection contents = SourceContent.DockPanel.Contents;
int num = 0;
while (num < contents.Count)
{
if (contents[num].DockHandler.DockState == DockState.Document && SourceContent.DockPanel.ActiveContent != contents[num])
{
contents[num].DockHandler.Close();
}
else
{
num++;
}
}
Itrycn_Db.IsCloseConfirm = true;
}
private void OnRename_Click(object sender, EventArgs e)
{
if (SourceContent == null) { return; }
SuperDesign.Controls.FrmTitle frm = new SuperDesign.Controls.FrmTitle();
frm.TxtTitle.Text = SourceContent.Text;
frm.Icon = SourceContent.Icon;
if(frm.ShowDialog()==DialogResult.OK)
{
SourceContent.Text = frm.TxtTitle.Text;
}
frm.Dispose();
}
public MenuRight(IContainer container)
{
container.Add(this);
InitializeComponent();
LoadMenu();
}
}
}