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(); } } }