162 lines
5.8 KiB
C#
162 lines
5.8 KiB
C#
|
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();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|