From 1954efe3c7703b20d52eb50f520d9422bd54dde7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A6=82=E6=9E=9C=E5=BD=93=E6=97=B6?= <1017848709@qq.com> Date: Sun, 27 Dec 2020 22:12:45 +0800 Subject: [PATCH] =?UTF-8?q?###=202020-12-27=20dev=E6=9B=B4=E6=96=B0=20####?= =?UTF-8?q?=20VSoft=20=20=20=20V1.0.2012.2702=20-=20*.[=E4=BF=AE=E5=A4=8D]?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8C=89=E7=83=AD=E9=94=AE=E6=88=96=E9=BC=A0?= =?UTF-8?q?=E6=A0=87=E6=98=BE=E7=A4=BA=E4=B8=BB=E7=95=8C=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E6=9C=89=E6=97=B6=E6=97=A0=E6=B3=95=E8=8E=B7=E5=BE=97=E7=84=A6?= =?UTF-8?q?=E7=82=B9=E7=9A=84BUG=E3=80=82=20-=20*.[=E6=94=B9=E8=BF=9B]?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=88=86=E7=B1=BB=E6=94=AF=E6=8C=81=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bin/Debug/VSoft/UserDb/Setting.xml | 2 +- Bin/Debug/VSoft/UserDb/Softs.dat | Bin 24576 -> 24576 bytes Bin/Debug/VSoft/UserDb/Win.dat | 4 +- Bin/Debug/VSoft/VSoft.dll | Bin 230912 -> 233472 bytes Bin/Debug/VSoft/VSoftBox.exe | Bin 94208 -> 94208 bytes Bin/Debug/VSoft/cUpdate.dat | 2 +- CHANGELOG.md | 6 + Source/.vs/VSoft/v16/.suo | Bin 171520 -> 163328 bytes Source/VSoftBox/Properties/AssemblyInfo.cs | 4 +- Source/VSoft_Dll/FrmAddColumn.cs | 15 +- Source/VSoft_Dll/FrmInCMD.cs | 17 +- Source/VSoft_Dll/FrmVSoft.cs | 160 ++++++-- Source/VSoft_Dll/Prams/Itrycn_Db.cs | 47 ++- Source/VSoft_Dll/Properties/AssemblyInfo.cs | 4 +- Source/VSoft_Dll/TabList.cs | 420 ++++++++++---------- 15 files changed, 410 insertions(+), 271 deletions(-) diff --git a/Bin/Debug/VSoft/UserDb/Setting.xml b/Bin/Debug/VSoft/UserDb/Setting.xml index db7fd3a..3c49682 100644 --- a/Bin/Debug/VSoft/UserDb/Setting.xml +++ b/Bin/Debug/VSoft/UserDb/Setting.xml @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/Bin/Debug/VSoft/UserDb/Softs.dat b/Bin/Debug/VSoft/UserDb/Softs.dat index f600768f5d5f4e979098c2a9467bbf3c5f65df9b..a51fdb41e3a0d59cac8fbddd1b400b5b70f28f36 100644 GIT binary patch delta 56 zcmZoTz}Rqrae_4C`H3>ljORBdXaq1iPktyOHhF$PnW&Mjk-37Ap_PG=m9ep&g}IrT MrGfEgt-x!103QnxbN~PV delta 47 zcmZoTz}Rqrae_4Cxrs8)jOR8cXar0yQWc*(KcH;#`FL(FBXd0yQzJ8DOY_ZIf!Fu| Dq|Oj= diff --git a/Bin/Debug/VSoft/UserDb/Win.dat b/Bin/Debug/VSoft/UserDb/Win.dat index 0279e4a..e3f71fb 100644 --- a/Bin/Debug/VSoft/UserDb/Win.dat +++ b/Bin/Debug/VSoft/UserDb/Win.dat @@ -1,4 +1,4 @@ [VSoft] hwnd=2889742 -width=742 -height=572 +width=738 +height=564 diff --git a/Bin/Debug/VSoft/VSoft.dll b/Bin/Debug/VSoft/VSoft.dll index a599114f5143c3fd7705805a9aae8975b9188d54..33a3ed53469753da4c46b396f2e9f5d47111851d 100644 GIT binary patch delta 58726 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 D)t2*l delta 55770 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 diff --git a/Bin/Debug/VSoft/VSoftBox.exe b/Bin/Debug/VSoft/VSoftBox.exe index ce4f3b1b4b4f4dce96c72e9b947e15bf5b8fb065..a225bc450e95515fe429d14c9f3014d6dc1245dc 100644 GIT binary patch delta 225 zcmZp8z}oPDbwUS=)e+6Ei9Irm+a|6IXH1;T$XL&~XL2KuoVuBjiI<(RZ!$k;DP!N} zR!(_#ff_URJ>QJq`*mJeuzz(z^V7{+1bmnnjW#n1?`Guv(WSVN0SK6YxN!1G5p88b z=~UlZ6MO%@!~^*}KY9WffikXEG0!?CKA+X{WcT9d3mPX2i+Txl8iVvfz+wO7!I%!Dr$5YObOv%&vlt&U OGwm?mUZ}4 delta 219 zcmZp8z}oPDbwUTr$@lGlCiciMZko6(Nca^hx2CSG>N-pTx&rHs9s zTRG*~1$38D8g6D3-p$CnwK;eq0}wC)aqi@kBHHpr zs}}vNbZvKOY_Qli>Dz%Pj6fMzs~F!(1((E<#Nx@~qF%hM#vnZqFn@BMs5Ilm$z7r? z6Af6J`NX#Ki81m8a`tlFVP{}qWa! - + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 16a8d5e..206b8be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ### 2020-12-27 dev更新 ------ +#### VSoft V1.0.2012.2702 +- *.[修复]修复按热键或鼠标显示主界面,有时无法获得焦点的BUG。 +- *.[改进]默认分类支持删除。 + +### 2020-12-27 dev更新 +------ #### VSoft V1.0.2012.2701 - *.[新增]新增支持通过双击鼠标中键、侧键的方式来显示主界面。 - *.[改进]当多次最小化后,不再显示最小化通知。 diff --git a/Source/.vs/VSoft/v16/.suo b/Source/.vs/VSoft/v16/.suo index 8f0e1cdb2bf523b308dda44fe5d798575ef66b8a..f597a9fcf9150dddb2692999b33d0b9e8fc98a22 100644 GIT binary patch delta 13479 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 G?SB9{57CGK diff --git a/Source/VSoftBox/Properties/AssemblyInfo.cs b/Source/VSoftBox/Properties/AssemblyInfo.cs index 6521475..92c8a8d 100644 --- a/Source/VSoftBox/Properties/AssemblyInfo.cs +++ b/Source/VSoftBox/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //通过使用 "*",如下所示: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.2012.2701")] -[assembly: AssemblyFileVersion("1.0.2012.2701")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.2012.2702")] +[assembly: AssemblyFileVersion("1.0.2012.2702")] \ No newline at end of file diff --git a/Source/VSoft_Dll/FrmAddColumn.cs b/Source/VSoft_Dll/FrmAddColumn.cs index 309fbc9..2641056 100644 --- a/Source/VSoft_Dll/FrmAddColumn.cs +++ b/Source/VSoft_Dll/FrmAddColumn.cs @@ -57,6 +57,7 @@ namespace VSoft mySQL.AddField("Name", TxtName.Text); mySQL.AddField("Des", TxtDes.Text); mySQL.AddField("editTime", DateTime.Now); + DataProvider mydb = new DataProvider(); IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); if (db.ConnDb(SQLConnStr) == 1) { @@ -64,7 +65,19 @@ namespace VSoft { mySQL.AddField("sortindex", Itrycn_Db.GetColumnCount(db, 0) + 1); mySQL.AddField("addTime", DateTime.Now); - db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL); + var ds= db.ReadData(mySQL.GetInsertSQL()+ ";select last_insert_rowid();", mySQL); + if(mydb.HaveData(ds)) + { + var ParentId = mydb.GetValue(ds); + RyQuickSQL mySQL2 = new RyQuickSQL(tableName); + mySQL2.AddField("Name","默认分类"); + mySQL2.AddField("Des", ""); + mySQL2.AddField("editTime", DateTime.Now); + mySQL2.AddField("sortindex", Itrycn_Db.GetColumnCount(db, ParentId) + 1); + mySQL2.AddField("parentId", ParentId); + mySQL2.AddField("addTime", DateTime.Now); + db.ExecuteNonQuery(mySQL2.GetInsertSQL(), mySQL2); + } } else { diff --git a/Source/VSoft_Dll/FrmInCMD.cs b/Source/VSoft_Dll/FrmInCMD.cs index d7fb9e1..7e31054 100644 --- a/Source/VSoft_Dll/FrmInCMD.cs +++ b/Source/VSoft_Dll/FrmInCMD.cs @@ -248,6 +248,7 @@ namespace VSoft private void BtnAddColumn_Click(object sender, EventArgs e) { FrmAddColumn frm = new FrmAddColumn(); + frm.TopMost = TopMost; frm.SQLConnStr = SQLConnStr; if (frm.ShowDialog() == DialogResult.OK) { @@ -278,6 +279,7 @@ namespace VSoft if (TabList_Column.SelectedItems.Count == 0) { return; } var info = (ColumnInfo)TabList_Column.SelectedItems[0].Tag; FrmAddColumn frm = new FrmAddColumn(); + frm.TopMost = TopMost; frm.SQLConnStr = SQLConnStr; frm.IsAdd = 0; frm.GetInfo(info.Id); @@ -370,7 +372,8 @@ namespace VSoft FrmAddType frm = new FrmAddType { ParentId = id, - SQLConnStr = SQLConnStr + SQLConnStr = SQLConnStr, + TopMost=TopMost }; if (frm.ShowDialog() == DialogResult.OK) { @@ -417,7 +420,8 @@ namespace VSoft FrmAddType frm = new FrmAddType { IsAdd = 0, - SQLConnStr = SQLConnStr + SQLConnStr = SQLConnStr, + TopMost=TopMost }; frm.GetInfo(info.Id); if (frm.ShowDialog() == DialogResult.OK) @@ -520,7 +524,8 @@ namespace VSoft FrmAddSoft frm = new FrmAddSoft { SQLConnStr = SQLConnStr, - ColumnId = ColumnId + ColumnId = ColumnId, + TopMost=TopMost }; if (frm.ShowDialog() == DialogResult.OK) { @@ -536,7 +541,8 @@ namespace VSoft { SelectId = info.Id, SQLConnStr = SQLConnStr, - IsAdd = 0 + IsAdd = 0, + TopMost=TopMost }; frm.GetInfo(info.Id); if (frm.ShowDialog() == DialogResult.OK) @@ -1106,7 +1112,8 @@ namespace VSoft FrmAddSoft frm = new FrmAddSoft { SQLConnStr = SQLConnStr, - ColumnId = ColumnId + ColumnId = ColumnId, + TopMost=TopMost }; frm.GetInfo(info.Id); frm.Text = "复制并新增软件"; diff --git a/Source/VSoft_Dll/FrmVSoft.cs b/Source/VSoft_Dll/FrmVSoft.cs index 33e8538..844835a 100644 --- a/Source/VSoft_Dll/FrmVSoft.cs +++ b/Source/VSoft_Dll/FrmVSoft.cs @@ -141,6 +141,7 @@ namespace VSoft private void LoadColumn() { TabList_Column.Items.Clear(); + DataProvider mydb = new DataProvider(); IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); if (db.ConnDb(SQLConnStr) == 1) { @@ -160,7 +161,20 @@ namespace VSoft mySQL.AddField("sortindex", 1); mySQL.AddField("parentId", 0); mySQL.AddField("addTime", DateTime.Now); - db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL); + var ds_c = db.ReadData(mySQL.GetInsertSQL() + ";select last_insert_rowid();", mySQL); + if (mydb.HaveData(ds_c)) + { + var ParentId = mydb.GetValue(ds_c); + RyQuickSQL mySQL2 = new RyQuickSQL("Columns"); + mySQL2.AddField("Name", "默认分类"); + mySQL2.AddField("Des", ""); + mySQL2.AddField("editTime", DateTime.Now); + mySQL2.AddField("sortindex", Itrycn_Db.GetColumnCount(db, ParentId) + 1); + mySQL2.AddField("parentId", ParentId); + mySQL2.AddField("addTime", DateTime.Now); + db.ExecuteNonQuery(mySQL2.GetInsertSQL(), mySQL2); + } + ds_c.Dispose(); DataSet ds2 = db.ReadData("select * from Columns where parentId=0 order by sortindex asc"); for (int i = 0; i < ds2.Tables[0].Rows.Count; i++) { @@ -182,7 +196,7 @@ namespace VSoft private void LoadTypeColumn(int id) { TabList_Type.Items.Clear(); - TabList_Type.Items.Add("默认分类").Tag = 0; + //TabList_Type.Items.Add("默认分类").Tag = 0; IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); if (db.ConnDb(SQLConnStr) == 1) { @@ -209,6 +223,51 @@ namespace VSoft LblEmpty.Left =((panelEx1.Width - LblEmpty.Width) / 2); Config.Soft_Info.UserDataFolder = ryCommon.RyFiles.GetRealPath(Config.Soft_Info.UserDataFolder); VSoft.Prams.Itrycn_Db.CreateTable(); + var dbver = Itrycn_Db.GetDbVer(); + if (dbver == 2) //当前要求的数据库 + { + + } + else //不是符合的数据库 + { + DataProvider mydb = new DataProvider(); + IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); + if (db.ConnDb(SQLConnStr) == 1) + { + if (dbver == 1) + { + DataSet ds = db.ReadData("select * from Columns where parentId=0 order by sortindex asc"); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + DataRow row = ds.Tables[0].Rows[i]; + #region 新建一个默认分类 + RyQuickSQL mySQL2 = new RyQuickSQL("Columns"); + mySQL2.AddField("Name", "默认分类"); + mySQL2.AddField("Des", ""); + mySQL2.AddField("editTime", DateTime.Now); + mySQL2.AddField("sortindex", Itrycn_Db.GetColumnCount(db, row["id"].ToInt()) + 1); + mySQL2.AddField("parentId", row["id"].ToInt()); + mySQL2.AddField("addTime", DateTime.Now); + var ds_id = db.ReadData(mySQL2.GetInsertSQL() + ";select last_insert_rowid();", mySQL2); + var type_id = mydb.GetValue(ds_id); + #endregion + RyQuickSQL mySQL3 = new RyQuickSQL("Softs"); + mySQL3.AddField("ColumnId", type_id);//将直属分类修改为默认分类 + db.ExecuteNonQuery(mySQL3.GetUpdateSQL()+ " where ColumnId="+ row["id"].ToInt(), mySQL3); + } + ds.Dispose(); + Itrycn_Db.SetDbVer(2); + } + else + { + db.Free(); + MessageBox.Show("不支持当前数据库版本,这可能是以下原因导致的:\r\n1.数据库已损坏;'\r\n2.当前数据库是由新版软件创建的(请更新软件后重试)。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + Application.Exit(); + return; + } + } + db.Free(); + } VSoft.Config.Soft_Config.LoadSetting(); LoadColumn(); //rySearch1.PerformClick(); @@ -246,6 +305,8 @@ namespace VSoft break; } } + [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")] + public static extern bool SetF(IntPtr hWnd); //设置此窗体为活动窗体 /// /// 显示或隐藏UI /// @@ -257,12 +318,30 @@ namespace VSoft } else { - 显示主窗体ToolStripMenuItem.PerformClick(); + this.WindowState = FormWindowState.Normal; + var topmost = this.TopMost; + this.TopMost = true; + this.Show(); + //this.TopMost = topmost; this.BringToFront(); this.Select(); this.Focus(); - RyForm.BringToTop(Handle); + //RyForm.BringToTop(Handle); + RyForm.SetActiveWindow(Handle); + //this.TopMost = topmost; rySearch1.Focus(); + using (var bg = new BackgroundWorker()) + { + bg.DoWork += delegate { System.Threading.Thread.Sleep(100); };//1秒后 + bg.RunWorkerCompleted += delegate { + this.Invoke(new Action(() => + { + this.TopMost = topmost; + SetF(Handle); + })); + }; // 线程执行完成后会执行 RunWorkerCompleted 事伯的代码块 + bg.RunWorkerAsync(); + } } } protected override void WndProc(ref System.Windows.Forms.Message msg) @@ -340,6 +419,7 @@ namespace VSoft private void BtnAddColumn_Click(object sender, EventArgs e) { FrmAddColumn frm = new FrmAddColumn(); + frm.TopMost = TopMost; if (frm.ShowDialog() == DialogResult.OK) { IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); @@ -362,6 +442,7 @@ namespace VSoft { if (TabList_Column.SelectedItems.Count == 0) { return; } FrmAddColumn frm = new FrmAddColumn(); + frm.TopMost = TopMost; frm.IsAdd = 0; frm.GetInfo(TabList_Column.SelectedItems[0].Tag.ToInt()); if (frm.ShowDialog() == DialogResult.OK) @@ -447,6 +528,7 @@ namespace VSoft } var id = TabList_Column.SelectedItems[0].Tag.ToInt(); FrmAddType frm = new FrmAddType(); + frm.TopMost = TopMost; frm.ParentId = id; if (frm.ShowDialog() == DialogResult.OK) { @@ -485,6 +567,7 @@ namespace VSoft return; } FrmAddType frm = new FrmAddType(); + frm.TopMost = TopMost; frm.IsAdd = 0; frm.GetInfo(id); if (frm.ShowDialog() == DialogResult.OK) @@ -603,6 +686,7 @@ namespace VSoft return; } FrmAddSoft frm = new FrmAddSoft(); + frm.TopMost = TopMost; frm.ColumnId = ColumnId; if (frm.ShowDialog() == DialogResult.OK) { @@ -615,6 +699,7 @@ namespace VSoft if (IconViewEx1.SelectedItems.Count == 0) { return; } var info = (SoftInfo)IconViewEx1.SelectedItems[0].Tag; FrmAddSoft frm = new FrmAddSoft(); + frm.TopMost = TopMost; frm.SelectId = info.Id; frm.IsAdd = 0; frm.GetInfo(info.Id); @@ -785,10 +870,15 @@ namespace VSoft { if (TabList_Column.SelectedItems.Count > 0) { - ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt(); + IDbInterface db2 = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); + if (db2.ConnDb(SQLConnStr) == 1) + { + ColumnId = Itrycn_Db.GetFirstColumnId(db2, TabList_Column.SelectedItems[0].Tag.ToInt()); + } + db2.Free(); } } - if(ColumnId==0) + if(ColumnId<=0) { MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; @@ -906,21 +996,22 @@ namespace VSoft { #region 从软件列表里拖放 var info = (SoftInfo)lvi.Tag; - RyQuickSQL mySQL = new RyQuickSQL("Softs"); - mySQL.AddField("ColumnId", columnid); - mySQL.AddField("editTime", DateTime.Now); IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); if (db.ConnDb(SQLConnStr) == 1) { - mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, columnid) + 1); + var id = Itrycn_Db.GetFirstColumnId(db, columnid); + if(id<=0) + { + return; + } + RyQuickSQL mySQL = new RyQuickSQL("Softs"); + mySQL.AddField("ColumnId", id); + mySQL.AddField("editTime", DateTime.Now); + mySQL.AddField("sortindex", Itrycn_Db.GetSoftCount(db, id) + 1); db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + info.Id, mySQL); if (TabList_Column.SelectedItems.Count > 0) { - if (TabList_Column.SelectedItems[0].Tag.ToInt() != columnid) - { - lvi.Remove(); - } - else if (TabList_Type.SelectedItems.Count > 0 && TabList_Type.SelectedItems[0].Tag.ToInt() > 0) + if (TabList_Type.SelectedItems.Count > 0 && TabList_Type.SelectedItems[0].Tag.ToInt() > 0 && TabList_Type.SelectedItems[0].Tag.ToInt()!=id) { lvi.Remove(); } @@ -987,10 +1078,7 @@ namespace VSoft var columnid = item.Tag.ToInt(); if (columnid == 0) { - if (TabList_Column.SelectedItems.Count>0) - { - columnid = TabList_Column.SelectedItems[0].Tag.ToInt(); - } + return; } //获得拖放中的项 var drag_item = e.Data.GetData(typeof(ListViewItem)); @@ -1023,7 +1111,7 @@ namespace VSoft } else if (lvi.ListView == TabList_Type) { - if (lvi.Index == item.Index || item.Index==0 || lvi.Index==0) { return; } + if (lvi.Index == item.Index) { return; } TabList_Type.BeginUpdate(); TabList_Type.View = View.List; TabList_Type.Items.RemoveAt(lvi.Index); @@ -1034,11 +1122,11 @@ namespace VSoft if (db.ConnDb(SQLConnStr) == 1) { db.BeginTransaction(); - for (int i = 1; i < TabList_Type.Items.Count; i++) + for (int i = 0; i < TabList_Type.Items.Count; i++) { var id = TabList_Type.Items[i].Tag.ToInt(); RyQuickSQL mySQL = new RyQuickSQL("Columns"); - mySQL.AddField("sortindex", i); + mySQL.AddField("sortindex", i+1); db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" +id, mySQL); } db.Commit(); @@ -1111,6 +1199,7 @@ namespace VSoft if (Config.Soft_Info.DonateVisabled) { FrmAbout frm = new FrmAbout(); + frm.TopMost = TopMost; frm.ShowDialog(); frm.Dispose(); } @@ -1124,7 +1213,8 @@ namespace VSoft { hotkey.Enabled = false; FrmSetting frm = new FrmSetting(); - if(frm.ShowDialog()==DialogResult.OK) + frm.TopMost = TopMost; + if (frm.ShowDialog()==DialogResult.OK) { VSoft.Config.Soft_Config.LoadSetting(); hotkey.UnHotKey(); @@ -1209,7 +1299,7 @@ namespace VSoft TabList_Column.SelectedStartBackColor = Color.LightYellow; using (var bg = new BackgroundWorker()) { - bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//180秒后,3分钟 + bg.DoWork += delegate { System.Threading.Thread.Sleep(500); };//0.5秒 bg.RunWorkerCompleted += delegate { this.Invoke(new Action(() => { @@ -1238,19 +1328,13 @@ namespace VSoft ColumnId = TabList_Type.SelectedItems[0].Tag.ToInt(); } if (ColumnId == 0) - { - if (TabList_Column.SelectedItems.Count > 0) - { - ColumnId = TabList_Column.SelectedItems[0].Tag.ToInt(); - } - } - if (ColumnId == 0) { MessageBox.Show("当前模式下不支持添加软件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } FrmInCMD frm = new FrmInCMD(); - if(frm.ShowDialog()==DialogResult.OK) + frm.TopMost = TopMost; + if (frm.ShowDialog()==DialogResult.OK) { var info = frm.SelectedInfo; RyQuickSQL mySQL = new RyQuickSQL("Softs"); @@ -1308,16 +1392,8 @@ namespace VSoft } else { - if (TabList_Type.SelectedItems[0].Index == 0) - { - Menu修改分类.Enabled = false; - Menu删除分类.Enabled = false; - } - else - { - Menu修改分类.Enabled = true; - Menu删除分类.Enabled = true; - } + Menu修改分类.Enabled = true; + Menu删除分类.Enabled = true; } } diff --git a/Source/VSoft_Dll/Prams/Itrycn_Db.cs b/Source/VSoft_Dll/Prams/Itrycn_Db.cs index b998cca..b69e9ea 100644 --- a/Source/VSoft_Dll/Prams/Itrycn_Db.cs +++ b/Source/VSoft_Dll/Prams/Itrycn_Db.cs @@ -36,7 +36,7 @@ namespace VSoft.Prams /// /// /// - public static void SetSetting(string _SQLConnStr, string name, string value) + public static int SetSetting(string _SQLConnStr, string name, string value) { IDbInterface db = CreateDataProvider(dataType); if (db.ConnDb(_SQLConnStr) == 1) @@ -44,21 +44,24 @@ namespace VSoft.Prams RyQuickSQL mySQL = new RyQuickSQL("Setting"); mySQL.AddField("sName", name); mySQL.AddField("sValue", value); - if (db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where sName=@sName", mySQL) == 0) + var result = db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where sName=@sName", mySQL); + if (result == 0) { - db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL); + result = db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL); } + return result; } db.Free(); + return -1000; } /// /// 写入设置 /// /// /// - public static void SetSetting(string name, string value) + public static int SetSetting(string name, string value) { - SetSetting(SQLConnStr, name, value); + return SetSetting(SQLConnStr, name, value); } /// /// 读取设置 @@ -109,6 +112,40 @@ namespace VSoft.Prams ds.Dispose(); return icount; } + /// + /// 获取指定栏目的第一个分类id + /// + /// + /// + /// + public static int GetFirstColumnId(IDbInterface db, int ColumnId) + { + var ds = db.ReadData("select id from Columns where parentId=" + ColumnId+ " order by sortindex asc limit 1"); + if (ds.Tables[0].Rows.Count == 0) + { return -1; } + else + { + var icount = ds.Tables[0].Rows[0][0].ToInt(); + ds.Dispose(); + return icount; + } + } + /// + /// 获取数据库版本 + /// + /// + public static int GetDbVer() + { + return GetSetting("dbVer", "1").ToInt(); + } + /// + /// 设置数据库版本 + /// + /// + public static int SetDbVer(int DbVer) + { + return SetSetting("dbVer", DbVer.ToString()); + } public static void CreateTable(DataProvider.DataProviderType dataType, string ConnStr) { IDbInterface db = CreateDataProvider(dataType); diff --git a/Source/VSoft_Dll/Properties/AssemblyInfo.cs b/Source/VSoft_Dll/Properties/AssemblyInfo.cs index 595f001..c924df2 100644 --- a/Source/VSoft_Dll/Properties/AssemblyInfo.cs +++ b/Source/VSoft_Dll/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //通过使用 "*",如下所示: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.2012.2701")] -[assembly: AssemblyFileVersion("1.0.2012.2701")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.2012.2702")] +[assembly: AssemblyFileVersion("1.0.2012.2702")] \ No newline at end of file diff --git a/Source/VSoft_Dll/TabList.cs b/Source/VSoft_Dll/TabList.cs index 1f26748..3d079ed 100644 --- a/Source/VSoft_Dll/TabList.cs +++ b/Source/VSoft_Dll/TabList.cs @@ -1,98 +1,98 @@ -using System.ComponentModel; -using System.Drawing; +using System.ComponentModel; +using System.Drawing; using System.Drawing.Drawing2D; -using System.Windows.Forms; - -namespace ryControls -{ - public class TabList : ListView - { - private ColumnHeader columnHeader1; - - public TabList() : - base() - { - this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); - this.OwnerDraw = true;//用于启用重绘 - this.View = View.Tile; - this.TileSize = new Size(80,28); - this.Scrollable = false; - this.MultiSelect = false; - } - - /// - /// 图标 - /// - public Image Icon { get; set; } - - /// - /// 重绘图标 - /// - public bool IsDrawIcon { get; set; } - - /// - /// 重绘网格线 - /// - public bool IsDrawGridLines { get; set; } - private int last_selectIndex = 0; - protected override void OnMouseUp(MouseEventArgs e) - { - var pt = this.PointToClient(e.Location); - var item = this.GetItemAt(pt.X, pt.Y); - if (item == null) - { - if (last_selectIndex < this.Items.Count) - { - this.Items[last_selectIndex].Selected = true; - } - } - } - protected override void OnItemSelectionChanged(ListViewItemSelectionChangedEventArgs e) - { - if(e.IsSelected) - { - last_selectIndex = e.ItemIndex; - base.OnItemSelectionChanged(e); - } - else - { - if ( last_selectIndex < this.Items.Count) - { - //this.Items[last_selectIndex].Selected = true; - } - } - } - protected override void OnSelectedIndexChanged(System.EventArgs e) - { - if(this.SelectedItems.Count>0) - { - base.OnSelectedIndexChanged(e); - } - else - { - - } - } - protected override void OnDrawItem(DrawListViewItemEventArgs e) - { - Rectangle r = e.Bounds; - Graphics g = e.Graphics; - - DrawSelectedBackground(e, g, r); - - //if (IsDrawGridLines) - //{ - // using (Pen pen = new Pen(Color.Gray)) - // { - // g.DrawRectangle(pen, r.X, r.Y, r.Width, r.Height + 1);//高度加1使横向线条重叠 - // } - //} - - if (!string.IsNullOrEmpty(e.Item.Text)) - { - this.DrawText(e, g, r); - } - } +using System.Windows.Forms; + +namespace ryControls +{ + public class TabList : ListView + { + private ColumnHeader columnHeader1; + + public TabList() : + base() + { + this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); + this.OwnerDraw = true;//用于启用重绘 + this.View = View.Tile; + this.TileSize = new Size(80,28); + this.Scrollable = false; + this.MultiSelect = false; + } + + /// + /// 图标 + /// + public Image Icon { get; set; } + + /// + /// 重绘图标 + /// + public bool IsDrawIcon { get; set; } + + /// + /// 重绘网格线 + /// + public bool IsDrawGridLines { get; set; } + private int last_selectIndex = 0; + protected override void OnMouseUp(MouseEventArgs e) + { + var pt = this.PointToClient(e.Location); + var item = this.GetItemAt(pt.X, pt.Y); + if (item == null) + { + if (last_selectIndex < this.Items.Count) + { + this.Items[last_selectIndex].Selected = true; + } + } + } + protected override void OnItemSelectionChanged(ListViewItemSelectionChangedEventArgs e) + { + if(e.IsSelected) + { + last_selectIndex = e.ItemIndex; + base.OnItemSelectionChanged(e); + } + else + { + if ( last_selectIndex < this.Items.Count) + { + //this.Items[last_selectIndex].Selected = true; + } + } + } + protected override void OnSelectedIndexChanged(System.EventArgs e) + { + if(this.SelectedItems.Count>0) + { + base.OnSelectedIndexChanged(e); + } + else + { + + } + } + protected override void OnDrawItem(DrawListViewItemEventArgs e) + { + Rectangle r = e.Bounds; + Graphics g = e.Graphics; + + DrawSelectedBackground(e, g, r); + + //if (IsDrawGridLines) + //{ + // using (Pen pen = new Pen(Color.Gray)) + // { + // g.DrawRectangle(pen, r.X, r.Y, r.Width, r.Height + 1);//高度加1使横向线条重叠 + // } + //} + + if (!string.IsNullOrEmpty(e.Item.Text)) + { + this.DrawText(e, g, r); + } + } private Color _SelectedStartBackColor = Color.LightSkyBlue; /// /// 选择项的背景开始颜色 @@ -143,8 +143,8 @@ namespace ryControls _SelectedBorderColor = value; this.Refresh(); } - } - private Color _SelectedForeColor = Color.Black; + } + private Color _SelectedForeColor = Color.Black; /// /// 选择项的字体颜色 /// @@ -160,120 +160,120 @@ namespace ryControls _SelectedForeColor = value; this.Refresh(); } - } - /// - /// 重绘选中时背景 - /// - private void DrawSelectedBackground(DrawListViewItemEventArgs e, Graphics g, Rectangle r) - { - if (e.Item.Selected) + } + /// + /// 重绘选中时背景 + /// + private void DrawSelectedBackground(DrawListViewItemEventArgs e, Graphics g, Rectangle r) + { + if (e.Item.Selected) { //渐变画刷 - LinearGradientBrush brush = new LinearGradientBrush(e.Bounds, _SelectedStartBackColor, - _SelectedEndBackColor, LinearGradientMode.Vertical); - //填充区域 - //Rectangle borderRect = new Rectangle(r, e.Bounds.Y, e.Bounds.Width - 5, e.Bounds.Height - 2); - e.Graphics.FillRectangle(brush, r); - brush.Dispose(); - ////画边框 - Pen pen = new Pen(_SelectedBorderColor); - Rectangle borderRect = r; - borderRect.Width--; - borderRect.Height--; - e.Graphics.DrawRectangle(pen, borderRect); - pen.Dispose(); - //using (SolidBrush brush = new SolidBrush(_SelectedBackColor)) - //{ - // g.FillRectangle(brush, r); - //} - } - } - - /// - /// 重绘图标 - /// - private Size DrawIcon(Graphics g, Rectangle r, Image image, Color backColor) - { - Rectangle imageBounds = new Rectangle(new Point(r.X+10, r.Y+3), new Size(64,64)); - if (r.Width > r.Height-20) - { - imageBounds.Width = r.Height-20; - imageBounds.Height = r.Height - 20; - } - else - { - imageBounds.Width = r.Width - 20; - imageBounds.Height = r.Width - 20; - } - imageBounds.X = r.X + (r.Width - imageBounds.Width) / 2; - //使图标不会紧贴着每一列的左上角 - //imageBounds.X += 1; - //imageBounds.Y += 1; - - g.DrawImage(image, imageBounds); - return imageBounds.Size; - } - - /// - /// 重绘文本 - /// - private void DrawText(DrawListViewItemEventArgs e, Graphics g, Rectangle r) - { - TextFormatFlags flags = GetFormatFlags(HorizontalAlignment.Center); - TextRenderer.DrawText( - g, - e.Item.Text, - e.Item.Font, - r, - e.Item.Selected?SelectedForeColor: e.Item.ForeColor, - flags); - } - - /// - /// 获取文本对齐 - /// - private TextFormatFlags GetFormatFlags( - HorizontalAlignment align) - { - TextFormatFlags flags = - TextFormatFlags.EndEllipsis | - TextFormatFlags.VerticalCenter; - - switch (align) - { - case HorizontalAlignment.Center: - flags |= TextFormatFlags.HorizontalCenter; - break; - case HorizontalAlignment.Right: - flags |= TextFormatFlags.Right; - break; - case HorizontalAlignment.Left: - flags |= TextFormatFlags.Left; - break; - } - - return flags; - } - - private void InitializeComponent() - { - this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.SuspendLayout(); - // - // columnHeader1 - // - this.columnHeader1.Width = 10; - // - // IconViewEx - // - this.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.columnHeader1}); - this.LabelWrap = false; - this.ShowItemToolTips = true; - this.TileSize = new System.Drawing.Size(60, 60); - this.View = System.Windows.Forms.View.Tile; - this.ResumeLayout(false); - - } - } + LinearGradientBrush brush = new LinearGradientBrush(e.Bounds, _SelectedStartBackColor, + _SelectedEndBackColor, LinearGradientMode.Vertical); + //填充区域 + //Rectangle borderRect = new Rectangle(r, e.Bounds.Y, e.Bounds.Width - 5, e.Bounds.Height - 2); + e.Graphics.FillRectangle(brush, r); + brush.Dispose(); + ////画边框 + Pen pen = new Pen(_SelectedBorderColor); + Rectangle borderRect = r; + borderRect.Width--; + borderRect.Height--; + e.Graphics.DrawRectangle(pen, borderRect); + pen.Dispose(); + //using (SolidBrush brush = new SolidBrush(_SelectedBackColor)) + //{ + // g.FillRectangle(brush, r); + //} + } + } + + /// + /// 重绘图标 + /// + private Size DrawIcon(Graphics g, Rectangle r, Image image, Color backColor) + { + Rectangle imageBounds = new Rectangle(new Point(r.X+10, r.Y+3), new Size(64,64)); + if (r.Width > r.Height-20) + { + imageBounds.Width = r.Height-20; + imageBounds.Height = r.Height - 20; + } + else + { + imageBounds.Width = r.Width - 20; + imageBounds.Height = r.Width - 20; + } + imageBounds.X = r.X + (r.Width - imageBounds.Width) / 2; + //使图标不会紧贴着每一列的左上角 + //imageBounds.X += 1; + //imageBounds.Y += 1; + + g.DrawImage(image, imageBounds); + return imageBounds.Size; + } + + /// + /// 重绘文本 + /// + private void DrawText(DrawListViewItemEventArgs e, Graphics g, Rectangle r) + { + TextFormatFlags flags = GetFormatFlags(HorizontalAlignment.Center); + TextRenderer.DrawText( + g, + e.Item.Text, + e.Item.Font, + r, + e.Item.Selected?SelectedForeColor: e.Item.ForeColor, + flags); + } + + /// + /// 获取文本对齐 + /// + private TextFormatFlags GetFormatFlags( + HorizontalAlignment align) + { + TextFormatFlags flags = + TextFormatFlags.EndEllipsis | + TextFormatFlags.VerticalCenter; + + switch (align) + { + case HorizontalAlignment.Center: + flags |= TextFormatFlags.HorizontalCenter; + break; + case HorizontalAlignment.Right: + flags |= TextFormatFlags.Right; + break; + case HorizontalAlignment.Left: + flags |= TextFormatFlags.Left; + break; + } + + return flags; + } + + private void InitializeComponent() + { + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // columnHeader1 + // + this.columnHeader1.Width = 10; + // + // IconViewEx + // + this.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1}); + this.LabelWrap = false; + this.ShowItemToolTips = true; + this.TileSize = new System.Drawing.Size(60, 60); + this.View = System.Windows.Forms.View.Tile; + this.ResumeLayout(false); + + } + } } \ No newline at end of file