### 2020-12-27 dev更新
#### VSoft V1.0.2012.2702 - *.[修复]修复按热键或鼠标显示主界面,有时无法获得焦点的BUG。 - *.[改进]默认分类支持删除。
This commit is contained in:
parent
800c766a67
commit
1954efe3c7
|
@ -1,3 +1,3 @@
|
|||
<root>
|
||||
<list id="Setting" ShowMainHotKey="1+88" OpenByClick="0" HideAfterRun="1" ShowMainMouseKeyOn="1" ShowMainMouseKey="0" />
|
||||
<list id="Setting" ShowMainHotKey="1+88" OpenByClick="0" HideAfterRun="1" ShowMainMouseKeyOn="1" ShowMainMouseKey="1" />
|
||||
</root>
|
Binary file not shown.
|
@ -1,4 +1,4 @@
|
|||
[VSoft]
|
||||
hwnd=2889742
|
||||
width=742
|
||||
height=572
|
||||
width=738
|
||||
height=564
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,3 +1,3 @@
|
|||
<root>
|
||||
<list id="LastUpdateTime" Value="2020/12/27 16:55:44" />
|
||||
<list id="LastUpdateTime" Value="2020/12/27 22:08:33" />
|
||||
</root>
|
|
@ -1,5 +1,11 @@
|
|||
### 2020-12-27 dev更新
|
||||
------
|
||||
#### VSoft V1.0.2012.2702
|
||||
- *.[修复]修复按热键或鼠标显示主界面,有时无法获得焦点的BUG。
|
||||
- *.[改进]默认分类支持删除。
|
||||
|
||||
### 2020-12-27 dev更新
|
||||
------
|
||||
#### VSoft V1.0.2012.2701
|
||||
- *.[新增]新增支持通过双击鼠标中键、侧键的方式来显示主界面。
|
||||
- *.[改进]当多次最小化后,不再显示最小化通知。
|
||||
|
|
Binary file not shown.
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.2012.2701")]
|
||||
[assembly: AssemblyFileVersion("1.0.2012.2701")]
|
||||
[assembly: AssemblyVersion("1.0.2012.2702")]
|
||||
[assembly: AssemblyFileVersion("1.0.2012.2702")]
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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 = "复制并新增软件";
|
||||
|
|
|
@ -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); //设置此窗体为活动窗体
|
||||
/// <summary>
|
||||
/// 显示或隐藏UI
|
||||
/// </summary>
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace VSoft.Prams
|
|||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="value"></param>
|
||||
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;
|
||||
}
|
||||
/// <summary>
|
||||
/// 写入设置
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="value"></param>
|
||||
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);
|
||||
}
|
||||
/// <summary>
|
||||
/// 读取设置
|
||||
|
@ -109,6 +112,40 @@ namespace VSoft.Prams
|
|||
ds.Dispose();
|
||||
return icount;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取指定栏目的第一个分类id
|
||||
/// </summary>
|
||||
/// <param name="db"></param>
|
||||
/// <param name="ColumnId"></param>
|
||||
/// <returns></returns>
|
||||
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;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取数据库版本
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static int GetDbVer()
|
||||
{
|
||||
return GetSetting("dbVer", "1").ToInt();
|
||||
}
|
||||
/// <summary>
|
||||
/// 设置数据库版本
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static int SetDbVer(int DbVer)
|
||||
{
|
||||
return SetSetting("dbVer", DbVer.ToString());
|
||||
}
|
||||
public static void CreateTable(DataProvider.DataProviderType dataType, string ConnStr)
|
||||
{
|
||||
IDbInterface db = CreateDataProvider(dataType);
|
||||
|
|
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
|||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.2012.2701")]
|
||||
[assembly: AssemblyFileVersion("1.0.2012.2701")]
|
||||
[assembly: AssemblyVersion("1.0.2012.2702")]
|
||||
[assembly: AssemblyFileVersion("1.0.2012.2702")]
|
|
@ -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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 图标
|
||||
/// </summary>
|
||||
public Image Icon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重绘图标
|
||||
/// </summary>
|
||||
public bool IsDrawIcon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重绘网格线
|
||||
/// </summary>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 图标
|
||||
/// </summary>
|
||||
public Image Icon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重绘图标
|
||||
/// </summary>
|
||||
public bool IsDrawIcon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重绘网格线
|
||||
/// </summary>
|
||||
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;
|
||||
/// <summary>
|
||||
/// 选择项的背景开始颜色
|
||||
|
@ -143,8 +143,8 @@ namespace ryControls
|
|||
_SelectedBorderColor = value;
|
||||
this.Refresh();
|
||||
}
|
||||
}
|
||||
private Color _SelectedForeColor = Color.Black;
|
||||
}
|
||||
private Color _SelectedForeColor = Color.Black;
|
||||
/// <summary>
|
||||
/// 选择项的字体颜色
|
||||
/// </summary>
|
||||
|
@ -160,120 +160,120 @@ namespace ryControls
|
|||
_SelectedForeColor = value;
|
||||
this.Refresh();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 重绘选中时背景
|
||||
/// </summary>
|
||||
private void DrawSelectedBackground(DrawListViewItemEventArgs e, Graphics g, Rectangle r)
|
||||
{
|
||||
if (e.Item.Selected)
|
||||
}
|
||||
/// <summary>
|
||||
/// 重绘选中时背景
|
||||
/// </summary>
|
||||
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);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重绘图标
|
||||
/// </summary>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重绘文本
|
||||
/// </summary>
|
||||
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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取文本对齐
|
||||
/// </summary>
|
||||
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);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重绘图标
|
||||
/// </summary>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重绘文本
|
||||
/// </summary>
|
||||
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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取文本对齐
|
||||
/// </summary>
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user