### 2021-10-08更新

------
#### VSoft    V1.0.2110.0801
- *.[新增]新增支持将分类绑定快捷键。
- *.[修复]修复新增软件后,热键可能设置不正确的BUG
This commit is contained in:
鑫Intel 2021-10-08 16:52:42 +08:00
parent 150b39ca18
commit 574e29870d
31 changed files with 2483 additions and 2094 deletions

Binary file not shown.

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>

Binary file not shown.

View File

@ -641,6 +641,14 @@
<param name="strValue">属性值</param> <param name="strValue">属性值</param>
<returns>如为1表示加载成功为0为失败</returns> <returns>如为1表示加载成功为0为失败</returns>
</member> </member>
<member name="M:ryCommon.Storage.SetAttrValue(System.String,System.Int64)">
<summary>
设置节点值
</summary>
<param name="strName">属性名</param>
<param name="strValue">属性值</param>
<returns>如为1表示加载成功为0为失败</returns>
</member>
<member name="M:ryCommon.Storage.SetAttrValue(System.String,System.Decimal)"> <member name="M:ryCommon.Storage.SetAttrValue(System.String,System.Decimal)">
<summary> <summary>
设置节点值 设置节点值
@ -667,7 +675,7 @@
</member> </member>
<member name="M:ryCommon.Storage.GetAttrValue(System.String)"> <member name="M:ryCommon.Storage.GetAttrValue(System.String)">
<summary> <summary>
读取指定节点的值 读取指定节点的值(string)
</summary> </summary>
<param name="strNode"></param> <param name="strNode"></param>
<returns></returns> <returns></returns>
@ -736,7 +744,7 @@
</member> </member>
<member name="M:ryCommon.Storage.GetAttrValue(System.String,System.String)"> <member name="M:ryCommon.Storage.GetAttrValue(System.String,System.String)">
<summary> <summary>
读取指定节点的值 读取指定节点的值(string)
</summary> </summary>
<param name="strNode"></param> <param name="strNode"></param>
<param name="defValue"></param> <param name="defValue"></param>
@ -744,7 +752,7 @@
</member> </member>
<member name="M:ryCommon.Storage.GetAttrValueByInt(System.String,System.Int32)"> <member name="M:ryCommon.Storage.GetAttrValueByInt(System.String,System.Int32)">
<summary> <summary>
读取指定节点的值 读取指定节点的值(int)
</summary> </summary>
<param name="strNode"></param> <param name="strNode"></param>
<param name="defValue"></param> <param name="defValue"></param>
@ -752,7 +760,7 @@
</member> </member>
<member name="M:ryCommon.Storage.GetAttrValueByDecimal(System.String,System.Decimal)"> <member name="M:ryCommon.Storage.GetAttrValueByDecimal(System.String,System.Decimal)">
<summary> <summary>
读取指定节点的值 读取指定节点的值(decimal)
</summary> </summary>
<param name="strNode"></param> <param name="strNode"></param>
<param name="defValue"></param> <param name="defValue"></param>
@ -1416,6 +1424,32 @@
<param name="exe_path"></param> <param name="exe_path"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ryCommon.RySoft.GetVerByVerStr(System.String,System.Double@,System.Double@)">
<summary>
根据版本字符串输出double类型的版本号
</summary>
<param name="ver"></param>
<param name="_softVer"></param>
<param name="_reVer"></param>
</member>
<member name="M:ryCommon.RySoft.CompareVer(System.String,System.String)">
<summary>
比较两个版本号大小
</summary>
<param name="oldVer"></param>
<param name="NewVer"></param>
<returns>oldVer小于newVer,返回1,大于则返回-1,相等返回0</returns>
</member>
<member name="M:ryCommon.RySoft.CompareVer(System.Double,System.Double,System.Double,System.Double)">
<summary>
比较版本号
</summary>
<param name="_old_softVer"></param>
<param name="_old_reVer"></param>
<param name="_new_softVer"></param>
<param name="_new_reVer"></param>
<returns>old小于new,返回1,大于则返回-1,相等返回0</returns>
</member>
<member name="M:ryCommon.RySoft.IsAdministrator"> <member name="M:ryCommon.RySoft.IsAdministrator">
<summary> <summary>
判断是否是管理员方式运行 判断是否是管理员方式运行
@ -2589,6 +2623,13 @@
<param name="seconds">是否显示秒</param> <param name="seconds">是否显示秒</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ryCommon.RyDate.GetTimeStr(System.Int64)">
<summary>
将秒数显示成中文表达式
</summary>
<param name="Seconds"></param>
<returns></returns>
</member>
<member name="M:ryCommon.RyDate.DateDiff(System.DateTime)"> <member name="M:ryCommon.RyDate.DateDiff(System.DateTime)">
<summary> <summary>
计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值. 计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
@ -6428,6 +6469,31 @@
<param name="Msg">发送消息</param> <param name="Msg">发送消息</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:QuickMsg.RyMemoryShare.ReadFromMemory(System.String,System.Int64)">
<summary>
读共享内存
</summary>
<param name="fileName"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:QuickMsg.RyMemoryShare.ReadFromMemory(System.String,System.Int32)">
<summary>
读共享内存
</summary>
<param name="fileName"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:QuickMsg.RyMemoryShare.ReadFromMemory(System.String,System.UInt32,System.String)">
<summary>
读共享内存
</summary>
<param name="fileName"></param>
<param name="structSize"></param>
<param name="defValue"></param>
<returns></returns>
</member>
<member name="M:QuickMsg.RyMemoryShare.ReadFromMemory(System.UInt32,System.Type,System.String)"> <member name="M:QuickMsg.RyMemoryShare.ReadFromMemory(System.UInt32,System.Type,System.String)">
<summary> <summary>
读共享内存 读共享内存
@ -6926,6 +6992,30 @@
<param name="mySQL"></param> <param name="mySQL"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ryCommonDb.IDbInterface.ExecuteNonQuery(ryCommonDb.RyQuickSQL,System.String,System.Boolean)">
<summary>
执行SQL语句
</summary>
<param name="mySQL"></param>
<param name="wheresql">只针对IsAdd为false才生效where 以后的sql语句</param>
<param name="IsAdd">是新增还是更新</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.IDbInterface.Insert(ryCommonDb.RyQuickSQL)">
<summary>
插入数据库
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.IDbInterface.Update(ryCommonDb.RyQuickSQL,System.String)">
<summary>
更新数据库
</summary>
<param name="mySQL"></param>
<param name="wheresql">where 以后的sql语句</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.IDbInterface.ExecuteNonQuery(System.String)"> <member name="M:ryCommonDb.IDbInterface.ExecuteNonQuery(System.String)">
<summary> <summary>
执行SQL语句 执行SQL语句
@ -7248,6 +7338,30 @@
<param name="Parameter"></param> <param name="Parameter"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ryCommonDb.SqlDataProvider.ExecuteNonQuery(ryCommonDb.RyQuickSQL,System.String,System.Boolean)">
<summary>
执行SQL语句
</summary>
<param name="mySQL"></param>
<param name="wheresql">只针对IsAdd为false才生效where 以后的sql语句</param>
<param name="IsAdd">是新增还是更新</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.Insert(ryCommonDb.RyQuickSQL)">
<summary>
插入数据库
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.Update(ryCommonDb.RyQuickSQL,System.String)">
<summary>
更新数据库
</summary>
<param name="mySQL"></param>
<param name="wheresql">where 以后的sql语句</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SqlDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)"> <member name="M:ryCommonDb.SqlDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)">
<summary> <summary>
@ -7420,6 +7534,13 @@
<param name="field"></param> <param name="field"></param>
<param name="value"></param> <param name="value"></param>
</member> </member>
<member name="M:ryCommonDb.RyQuickSQL.AddField(System.String,System.Byte[])">
<summary>
添加byte[]字段
</summary>
<param name="field"></param>
<param name="value"></param>
</member>
<member name="M:ryCommonDb.RyQuickSQL.AddField(System.String,System.Boolean)"> <member name="M:ryCommonDb.RyQuickSQL.AddField(System.String,System.Boolean)">
<summary> <summary>
添加bool字段 添加bool字段
@ -8072,6 +8193,14 @@
<param name="url"></param> <param name="url"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:RyWeb.QuickWeb.GetSize(System.String,System.String@)">
<summary>
获取网址对应的文件大小
</summary>
<param name="url"></param>
<param name="errormsg"></param>
<returns></returns>
</member>
<member name="P:RyWeb.QuickWeb.UserAgent"> <member name="P:RyWeb.QuickWeb.UserAgent">
<summary> <summary>
@ -9172,6 +9301,50 @@
释放热键 释放热键
</summary> </summary>
</member> </member>
<member name="M:SysFuns.WinHotReg.GetTag(System.Int32)">
<summary>
获取热键Tag
</summary>
<param name="HotId"></param>
<returns></returns>
</member>
<member name="M:SysFuns.WinHotReg.GetHotId(System.String)">
<summary>
获取热键id
</summary>
<param name="Tag"></param>
<returns></returns>
</member>
<member name="M:SysFuns.WinHotReg.GetHotId(SysFuns.KeyModifiers,System.Windows.Forms.Keys)">
<summary>
获取热键id
</summary>
<param name="fsModifiers"></param>
<param name="vk"></param>
<returns></returns>
</member>
<member name="M:SysFuns.WinHotReg.IsExist(System.Int32)">
<summary>
判断热键id是否存在
</summary>
<param name="hotId"></param>
<returns></returns>
</member>
<member name="M:SysFuns.WinHotReg.IsExist(System.String)">
<summary>
判断热键Tag是否存在
</summary>
<param name="Tag"></param>
<returns></returns>
</member>
<member name="M:SysFuns.WinHotReg.IsExist(SysFuns.KeyModifiers,System.Windows.Forms.Keys)">
<summary>
判断热键是否存在
</summary>
<param name="fsModifiers"></param>
<param name="vk"></param>
<returns></returns>
</member>
<member name="M:SysFuns.WinHotReg.RegHotKey(System.Int32,SysFuns.KeyModifiers,System.Windows.Forms.Keys)"> <member name="M:SysFuns.WinHotReg.RegHotKey(System.Int32,SysFuns.KeyModifiers,System.Windows.Forms.Keys)">
<summary> <summary>
注册热键 注册热键
@ -9190,6 +9363,16 @@
<param name="vk"></param> <param name="vk"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:SysFuns.WinHotReg.RegHotKey(System.Int32,System.String,System.Int32,System.Windows.Forms.Keys)">
<summary>
注册热键
</summary>
<param name="id"></param>
<param name="Tag"></param>
<param name="fsModifiers"></param>
<param name="vk"></param>
<returns></returns>
</member>
<member name="P:SysFuns.WinHotReg.Count"> <member name="P:SysFuns.WinHotReg.Count">
<summary> <summary>
获取热键数量 获取热键数量
@ -9240,6 +9423,11 @@
热键id 热键id
</summary> </summary>
</member> </member>
<member name="F:SysFuns.HotKeyType.Tag">
<summary>
热键Tag
</summary>
</member>
<member name="F:SysFuns.HotKeyType.fsModifiers"> <member name="F:SysFuns.HotKeyType.fsModifiers">
<summary> <summary>
功能键 功能键
@ -9258,6 +9446,20 @@
<param name="fsModifiers"></param> <param name="fsModifiers"></param>
<param name="vk"></param> <param name="vk"></param>
</member> </member>
<member name="M:SysFuns.HotKeyType.#ctor(System.Int32,System.String,SysFuns.KeyModifiers,System.Windows.Forms.Keys)">
<summary>
热键类型
</summary>
<param name="id"></param>
<param name="Tag"></param>
<param name="fsModifiers"></param>
<param name="vk"></param>
</member>
<member name="M:SysFuns.HotKeyType.#ctor">
<summary>
热键类型
</summary>
</member>
<member name="T:WinAPI.Kernel32"> <member name="T:WinAPI.Kernel32">
<summary> <summary>

Binary file not shown.

View File

@ -358,6 +358,30 @@
<param name="Parameter"></param> <param name="Parameter"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(ryCommonDb.RyQuickSQL,System.String,System.Boolean)">
<summary>
执行SQL语句
</summary>
<param name="mySQL"></param>
<param name="wheresql">只针对IsAdd为false才生效where 以后的sql语句</param>
<param name="IsAdd">是新增还是更新</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Insert(ryCommonDb.RyQuickSQL)">
<summary>
插入数据库
</summary>
<param name="mySQL"></param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.Update(ryCommonDb.RyQuickSQL,System.String)">
<summary>
更新数据库
</summary>
<param name="mySQL"></param>
<param name="wheresql">where 以后的sql语句</param>
<returns></returns>
</member>
<member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)"> <member name="M:ryCommonDb.SQLiteDataProvider.ExecuteNonQuery(System.String,ryCommonDb.RyQuickSQL)">
<summary> <summary>

Binary file not shown.

View File

@ -1,3 +1,3 @@
<root> <root>
<list id="Setting" ShowMainHotKey="1+88" OpenByClick="0" HideAfterRun="1" ShowMainMouseKeyOn="1" ShowMainMouseKey="1" /> <list id="Setting" ShowMainHotKey="1+88" OpenByClick="0" HideAfterRun="1" ShowMainMouseKeyOn="1" ShowMainMouseKey="2" />
</root> </root>

Binary file not shown.

View File

@ -1,5 +1,5 @@
[VSoft] [VSoft]
hwnd=1446336 hwnd=8193010
width=745 width=745
height=543 height=543
[VSoft_Test] [VSoft_Test]

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -14498,22 +14498,26 @@
</summary> </summary>
<remarks> <remarks>
<para> <para>
The contents of the control will be updated immediately after setting this property. 设置此属性后,控件的内容将立即更新。
</para> </para>
<para>This method preserves selection, if possible. Use <see cref="M:BrightIdeasSoftware.ObjectListView.SetObjects(System.Collections.IEnumerable,System.Boolean)"/> if <para>如果可能,此方法将保留所选内容。使用 <see cref="M:BrightIdeasSoftware.ObjectListView.SetObjects(System.Collections.IEnumerable,System.Boolean)"/> if
you do not want to preserve the selection. Preserving selection is the slowest part of this 如果您不想保留所选内容,请执行以下操作。
code and performance is O(n) where n is the number of selected rows.</para> 保留选择是该代码中最慢的部分性能为O(N)其中n是选定的行数。</para>
<para>This method is not thread safe.</para> <para>此方法不是线程安全的。</para>
<para>The property DOES work on virtual lists: setting is problem-free, but if you try to get it <para>该属性确实适用于虚拟列表:设置是没有问题的,但如果您尝试获取它,
and the list has 10 million objects, it may take some time to return.</para> 并且列表有1000万个对象则可能需要一些时间才能返回。</para>
<para>This collection is unfiltered. Use <see cref="P:BrightIdeasSoftware.ObjectListView.FilteredObjects"/> to access just those objects <para>此集合未经过筛选。使用 <see cref="P:BrightIdeasSoftware.ObjectListView.FilteredObjects"/> 只访问那些在任何已安装的筛选器中幸存下来的对象。</para>
that survive any installed filters.</para>
</remarks> </remarks>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.ObjectsList">
<summary>
获取当前控件所有对象组成的列表
</summary>
</member>
<member name="P:BrightIdeasSoftware.ObjectListView.ObjectsForClustering"> <member name="P:BrightIdeasSoftware.ObjectListView.ObjectsForClustering">
<summary> <summary>
Gets the collection of objects that will be considered when creating clusters 获取创建群集时将考虑的对象集合。
(which are used to generate Excel-like column filters) (用于生成类似Excel的列筛选器)
</summary> </summary>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.OverlayImage"> <member name="P:BrightIdeasSoftware.ObjectListView.OverlayImage">
@ -14647,18 +14651,17 @@
<remarks>SelectColumnsOnRightClickBehaviour设置为InlineMenu时才有效。当行为设置为SubMenu菜单时该选项不起作用。</remarks> <remarks>SelectColumnsOnRightClickBehaviour设置为InlineMenu时才有效。当行为设置为SubMenu菜单时该选项不起作用。</remarks>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.SelectedColumn"> <member name="P:BrightIdeasSoftware.ObjectListView.SelectedColumn">
<summary> <summary>
Gets or sets the column that is drawn with a slight tint. 获取或设置选定列
</summary> </summary>
<remarks> <remarks>
<para> <para>
If TintSortColumn is true, the sort column will automatically 如果TintSortColumn为true则排序列将自动成为选定列。
be made the selected column. </para>
</para> <para>
<para> 色调的颜色由SelectedColumnTint控制。
The colour of the tint is controlled by SelectedColumnTint. </para>
</para> </remarks>
</remarks>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.SelectedRowDecoration"> <member name="P:BrightIdeasSoftware.ObjectListView.SelectedRowDecoration">
<summary> <summary>
@ -14996,12 +14999,11 @@
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.BooleanCheckStateGetter"> <member name="P:BrightIdeasSoftware.ObjectListView.BooleanCheckStateGetter">
<summary> <summary>
This delegate fetches the checkedness of an object as a boolean only. 此委托仅将对象的检查性作为布尔值获取。
</summary> </summary>
<remarks>Use this if you never want to worry about the <remarks>如果您永远不想担心不确定状态(这是相当常见的),请使用此选项。
Indeterminate state (which is fairly common).
<para> <para>
This is a convenience wrapper around the CheckStateGetter property. 这是CheckStateGetter属性的便捷包装。
</para> </para>
</remarks> </remarks>
</member> </member>
@ -15019,7 +15021,7 @@
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.CanShowGroups"> <member name="P:BrightIdeasSoftware.ObjectListView.CanShowGroups">
<summary> <summary>
Gets whether or not this listview is capabale of showing groups 获取此列表视图是否能够显示组
</summary> </summary>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.CanUseApplicationIdle"> <member name="P:BrightIdeasSoftware.ObjectListView.CanUseApplicationIdle">
@ -15057,20 +15059,17 @@
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.CheckedAspectName"> <member name="P:BrightIdeasSoftware.ObjectListView.CheckedAspectName">
<summary> <summary>
The name of the property (or field) that holds whether or not a model is checked. 保存是否选中模型的属性(或字段)的名称。
</summary> </summary>
<remarks> <remarks>
<para>The property be modifiable. It must have a return type of bool (or of bool? if <para>该属性是可修改的。它必须具有bool(或bool)返回类型。如果TriStateCheckBooks为真)。</para>
TriStateCheckBoxes is true).</para> <para>设置此属性将替换任何已安装的CheckStateGetter或CheckStatePutter。
<para>Setting this property replaces any CheckStateGetter or CheckStatePutter that have been installed. 相反稍后设置CheckStateGetter或CheckStatePutter属性将优先于此属性的行为。</para>
Conversely, later setting the CheckStateGetter or CheckStatePutter properties will take precedence
over the behavior of this property.</para>
</remarks> </remarks>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.CheckStateGetter"> <member name="P:BrightIdeasSoftware.ObjectListView.CheckStateGetter">
<summary> <summary>
This delegate will be called whenever the ObjectListView needs to know the check state 只要ObjectListView需要知道与给定模型对象关联的行的检查状态就会调用此委托。
of the row associated with a given model object.
</summary> </summary>
<remarks> <remarks>
<para>.NET has no support for indeterminate values, but as of v2.0, this class allows <para>.NET has no support for indeterminate values, but as of v2.0, this class allows
@ -15085,20 +15084,19 @@
</summary> </summary>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.CustomSorter"> <member name="P:BrightIdeasSoftware.ObjectListView.CustomSorter">
<summary> <summary>
This delegate can be used to sort the table in a custom fasion. 此委托可用于以自定义方式对表进行排序。
</summary> </summary>
<remarks> <remarks>
<para> <para>
The delegate must install a ListViewItemSorter on the ObjectListView. 委托必须在ObjectListView上安装ListViewItemSorter。
Installing the ItemSorter does the actual work of sorting the ListViewItems. 安装ItemSorter会执行对ListViewItems进行排序的实际工作。
See ColumnComparer in the code for an example of what an ItemSorter has to do. 有关ItemSorter必须执行的操作的示例请参见代码中的ColumnCompeller。
</para> </para>
<para> <para>
Do not install a CustomSorter on a VirtualObjectListView. Override the SortObjects() 请勿在VirtualObjectListView上安装CustomSorter。改为重写IVirtualListDataSource的SortObjects()方法。
method of the IVirtualListDataSource instead. </para>
</para> </remarks>
</remarks>
</member> </member>
<member name="P:BrightIdeasSoftware.ObjectListView.HeaderToolTipGetter"> <member name="P:BrightIdeasSoftware.ObjectListView.HeaderToolTipGetter">
<summary> <summary>
@ -15132,77 +15130,69 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.AddObject(System.Object)"> <member name="M:BrightIdeasSoftware.ObjectListView.AddObject(System.Object)">
<summary> <summary>
Add the given model object to this control. 将给定的模型对象添加到此控件。
</summary> </summary>
<param name="modelObject">The model object to be displayed</param> <param name="modelObject">要显示的模型对象</param>
<remarks>See AddObjects() for more details</remarks> <remarks>See AddObjects() for more details</remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.AddObjects(System.Collections.ICollection)"> <member name="M:BrightIdeasSoftware.ObjectListView.AddObjects(System.Collections.ICollection)">
<summary> <summary>
Add the given collection of model objects to this control. 将给定的模型对象集合添加到此控件。
</summary> </summary>
<param name="modelObjects">A collection of model objects</param> <param name="modelObjects">要显示的模型对象集合</param>
<remarks> <remarks>
<para>The added objects will appear in their correct sort position, if sorting <para>如果排序处于活动状态(即如果PrimarySortColumn不为空),则添加的对象将出现在其正确的排序位置。否则,它们将出现在列表的末尾。</para>
is active (i.e. if PrimarySortColumn is not null). Otherwise, they will appear at the end of the list.</para> <para>不执行任何检查以查看是否有任何对象已在ListView中。</para>
<para>No check is performed to see if any of the objects are already in the ListView.</para> <para>空对象将被静默忽略。</para>
<para>Null objects are silently ignored.</para>
</remarks> </remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.AutoResizeColumns"> <member name="M:BrightIdeasSoftware.ObjectListView.AutoResizeColumns">
<summary> <summary>
Resize the columns to the maximum of the header width and the data. 将列的大小调整到页眉宽度和数据的最大值。
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.AutoSizeColumns"> <member name="M:BrightIdeasSoftware.ObjectListView.AutoSizeColumns">
<summary> <summary>
Set up any automatically initialized column widths (columns that 设置任何自动初始化的列宽(宽度为0或-1的列将分别调整为其内容或标题的宽度)。
have a width of 0 or -1 will be resized to the width of their </summary>
contents or header respectively). <remarks>
</summary> 显然,这只会起作用一次。一旦运行,列宽将更改为其他值(不是0或-1),因此第二次运行时不会执行任何操作。
<remarks> 若要强制所有列更改其大小,请使用<see cref="M:BrightIdeasSoftware.ObjectListView.AutoResizeColumns"/>
Obviously, this will only work once. Once it runs, the columns widths will </remarks>
be changed to something else (other than 0 or -1), so it wont do anything the
second time through. Use <see cref="M:BrightIdeasSoftware.ObjectListView.AutoResizeColumns"/> to force all columns
to change their size.
</remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.BuildGroups"> <member name="M:BrightIdeasSoftware.ObjectListView.BuildGroups">
<summary> <summary>
Organise the view items into groups, based on the last sort column or the first column 根据最后一个排序列或第一列(如果没有最后一个排序列)将视图项组织到组中
if there is no last sort column
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.BuildGroups(BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder)"> <member name="M:BrightIdeasSoftware.ObjectListView.BuildGroups(BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder)">
<summary> <summary>
Organise the view items into groups, based on the given column 根据给定列将视图项组织成组
</summary> </summary>
<remarks> <remarks>
<para> <para>
If the AlwaysGroupByColumn property is not null, 如果AlwaysGroupByColumn属性不为Null则列表视图项将按该列组织并且将忽略Column参数。
the list view items will be organisd by that column,
and the 'column' parameter will be ignored.
</para> </para>
<para>This method triggers sorting events: BeforeSorting and AfterSorting.</para> <para>此方法触发排序事件BeforeSorting和AfterSorting。</para>
</remarks> </remarks>
<param name="column">The column whose values should be used for sorting.</param> <param name="column">其值应用于排序的列。</param>
<param name="order"></param> <param name="order"></param>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.BuildGroups(BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder)"> <member name="M:BrightIdeasSoftware.ObjectListView.BuildGroups(BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder)">
<summary> <summary>
Organise the view items into groups, based on the given columns 根据给定列将视图项组织成组
</summary> </summary>
<param name="groupByColumn">What column will be used for grouping</param> <param name="groupByColumn">将使用哪一列进行分组</param>
<param name="groupByOrder">What ordering will be used for groups</param> <param name="groupByOrder">组将使用什么顺序</param>
<param name="column">The column whose values should be used for sorting. Cannot be null</param> <param name="column">其值应用于排序的列。不能为空</param>
<param name="order">The order in which the values from column will be sorted</param> <param name="order">列中值的排序顺序</param>
<param name="secondaryColumn">When the values from 'column' are equal, use the values provided by this column</param> <param name="secondaryColumn">column中的值相等时请使用此列提供的值</param>
<param name="secondaryOrder">How will the secondary values be sorted</param> <param name="secondaryOrder">次级值将如何排序</param>
<remarks>This method does not trigger sorting events. Use BuildGroups() to do that</remarks> <remarks>此方法不会触发排序事件。使用BuildGroups()执行此操作</remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.CollectGroupingParameters(BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder)"> <member name="M:BrightIdeasSoftware.ObjectListView.CollectGroupingParameters(BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder,BrightIdeasSoftware.OLVColumn,System.Windows.Forms.SortOrder)">
<summary> <summary>
Collect and return all the variables that influence the creation of groups 收集并返回影响组创建的所有变量
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
@ -15217,12 +15207,12 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.BuildList"> <member name="M:BrightIdeasSoftware.ObjectListView.BuildList">
<summary> <summary>
Build/rebuild all the list view items in the list, preserving as much state as is possible 生成/重新生成列表中的所有列表视图项,尽可能多地保留状态
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.BuildList(System.Boolean)"> <member name="M:BrightIdeasSoftware.ObjectListView.BuildList(System.Boolean)">
<summary> <summary>
Build/rebuild all the list view items in the list 生成/重新生成列表中的所有列表视图项
</summary> </summary>
<param name="shouldPreserveState">If this is true, the control will try to preserve the selection, <param name="shouldPreserveState">If this is true, the control will try to preserve the selection,
focused item, and the scroll position (see Remarks) focused item, and the scroll position (see Remarks)
@ -15236,7 +15226,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.ClearCachedInfo"> <member name="M:BrightIdeasSoftware.ObjectListView.ClearCachedInfo">
<summary> <summary>
Clear any cached info this list may have been using 清除此列表可能一直在使用的所有缓存信息
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.ApplyExtendedStyles"> <member name="M:BrightIdeasSoftware.ObjectListView.ApplyExtendedStyles">
@ -15271,85 +15261,85 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.ClearObjects"> <member name="M:BrightIdeasSoftware.ObjectListView.ClearObjects">
<summary> <summary>
Remove all items from this list 移除所有对象(线程安全)
</summary> </summary>
<remark>This method can safely be called from background threads.</remark> <remark>This method can safely be called from background threads.</remark>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.ClearUrlVisited"> <member name="M:BrightIdeasSoftware.ObjectListView.ClearUrlVisited">
<summary> <summary>
Reset the memory of which URLs have been visited 重置已访问其URL的内存
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.CopySelectionToClipboard"> <member name="M:BrightIdeasSoftware.ObjectListView.CopySelectionToClipboard">
<summary> <summary>
Copy a text and html representation of the selected rows onto the clipboard. 将选定行的文本和HTML表示复制到剪贴板上。
</summary> </summary>
<remarks>Be careful when using this with virtual lists. If the user has selected <remarks>Be careful when using this with virtual lists. If the user has selected
10,000,000 rows, this method will faithfully try to copy all of them to the clipboard. 10,000,000 rows, this method will faithfully try to copy all of them to the clipboard.
From the user's point of view, your program will appear to have hung.</remarks> From the user's point of view, your program will appear to have hung.</remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.CopyObjectsToClipboard(System.Collections.IList)"> <member name="M:BrightIdeasSoftware.ObjectListView.CopyObjectsToClipboard(System.Collections.IList)">
<summary> <summary>
Copy a text and html representation of the given objects onto the clipboard. 将给定对象的文本和HTML表示复制到剪贴板上。
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.ObjectsToHtml(System.Collections.IList)"> <member name="M:BrightIdeasSoftware.ObjectListView.ObjectsToHtml(System.Collections.IList)">
<summary> <summary>
Return a html representation of the given objects 返回给定对象的html表示形式
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.DeselectAll"> <member name="M:BrightIdeasSoftware.ObjectListView.DeselectAll">
<summary> <summary>
Deselect all rows in the listview 取消选择列表视图中的所有行
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.GetNextItem(BrightIdeasSoftware.OLVListItem)"> <member name="M:BrightIdeasSoftware.ObjectListView.GetNextItem(BrightIdeasSoftware.OLVListItem)">
<summary> <summary>
Return the ListViewItem that appears immediately after the given item. 返回紧跟在给定项后面的ListViewItem。
If the given item is null, the first item in the list will be returned. 如果给定项为空,则返回列表中的第一个项。
Return null if the given item is the last item. 如果给定项是最后一项则返回NULL。
</summary> </summary>
<param name="itemToFind">The item that is before the item that is returned, or null</param> <param name="itemToFind">The item that is before the item that is returned, or null</param>
<returns>A ListViewItem</returns> <returns>A ListViewItem</returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.GetLastItemInDisplayOrder"> <member name="M:BrightIdeasSoftware.ObjectListView.GetLastItemInDisplayOrder">
<summary> <summary>
Return the last item in the order they are shown to the user. 按向用户显示的顺序返回最后一项。
If the control is not grouped, the display order is the same as the 如果控件未分组,则显示顺序与排序的列表顺序相同。
sorted list order. But if the list is grouped, the display order is different. 但如果列表是分组的,则显示顺序不同。
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.GetNthItemInDisplayOrder(System.Int32)"> <member name="M:BrightIdeasSoftware.ObjectListView.GetNthItemInDisplayOrder(System.Int32)">
<summary> <summary>
Return the n'th item (0-based) in the order they are shown to the user. 按向用户显示的顺序返回第n项(从0开始)。
If the control is not grouped, the display order is the same as the 如果控件未分组,则显示顺序与排序的列表顺序相同。
sorted list order. But if the list is grouped, the display order is different. 但如果列表是分组的,则显示顺序不同。
</summary> </summary>
<param name="n"></param> <param name="n"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.GetDisplayOrderOfItemIndex(System.Int32)"> <member name="M:BrightIdeasSoftware.ObjectListView.GetDisplayOrderOfItemIndex(System.Int32)">
<summary> <summary>
Return the display index of the given listviewitem index. 返回给定listviewitem索引的显示索引。
If the control is not grouped, the display order is the same as the 如果控件未分组,则显示顺序与排序的列表顺序相同。
sorted list order. But if the list is grouped, the display order is different. 但如果列表是分组的,则显示顺序不同。
</summary> </summary>
<param name="itemIndex"></param> <param name="itemIndex"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.GetPreviousItem(BrightIdeasSoftware.OLVListItem)"> <member name="M:BrightIdeasSoftware.ObjectListView.GetPreviousItem(BrightIdeasSoftware.OLVListItem)">
<summary> <summary>
Return the ListViewItem that appears immediately before the given item. 返回紧接在给定项之前出现的ListViewItem。
If the given item is null, the last item in the list will be returned. 如果给定项为空,则返回列表中的最后一项。
Return null if the given item is the first item. 如果给定项是第一项则返回NULL。
</summary> </summary>
<param name="itemToFind">The item that is before the item that is returned</param> <param name="itemToFind">The item that is before the item that is returned</param>
<returns>A ListViewItem</returns> <returns>A ListViewItem</returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.InsertObjects(System.Int32,System.Collections.ICollection)"> <member name="M:BrightIdeasSoftware.ObjectListView.InsertObjects(System.Int32,System.Collections.ICollection)">
<summary> <summary>
Insert the given collection of objects before the given position 在给定位置之前插入给定的对象集合
</summary> </summary>
<param name="index">Where to insert the objects</param> <param name="index">Where to insert the objects</param>
<param name="modelObjects">The objects to be inserted</param> <param name="modelObjects">The objects to be inserted</param>
@ -15364,21 +15354,21 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.IsSelected(System.Object)"> <member name="M:BrightIdeasSoftware.ObjectListView.IsSelected(System.Object)">
<summary> <summary>
Return true if the row representing the given model is selected 如果选择了表示给定模型的行则返回TRUE
</summary> </summary>
<param name="model">The model object to look for</param> <param name="model">The model object to look for</param>
<returns>Is the row selected</returns> <returns>Is the row selected</returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.IsUrlVisited(System.String)"> <member name="M:BrightIdeasSoftware.ObjectListView.IsUrlVisited(System.String)">
<summary> <summary>
Has the given URL been visited? 给定的URL是否已被访问
</summary> </summary>
<param name="url">The string to be consider</param> <param name="url">The string to be consider</param>
<returns>Has it been visited</returns> <returns>Has it been visited</returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.LowLevelScroll(System.Int32,System.Int32)"> <member name="M:BrightIdeasSoftware.ObjectListView.LowLevelScroll(System.Int32,System.Int32)">
<summary> <summary>
Scroll the ListView by the given deltas. 按给定的值增量滚动ListView。
</summary> </summary>
<param name="dx">Horizontal delta</param> <param name="dx">Horizontal delta</param>
<param name="dy">Vertical delta</param> <param name="dy">Vertical delta</param>
@ -15389,32 +15379,32 @@
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.MarkUrlVisited(System.String)"> <member name="M:BrightIdeasSoftware.ObjectListView.MarkUrlVisited(System.String)">
<summary> <summary>
Remember that the given URL has been visited 记住给定的URL已被访问
</summary> </summary>
<param name="url">The url to be remembered</param> <param name="url">The url to be remembered</param>
<remarks>This does not cause the control be redrawn</remarks> <remarks>This does not cause the control be redrawn</remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.MoveObjects(System.Int32,System.Collections.ICollection)"> <member name="M:BrightIdeasSoftware.ObjectListView.MoveObjects(System.Int32,System.Collections.ICollection)">
<summary> <summary>
Move the given collection of objects to the given index. 将给定的对象集合移动到给定的索引。
</summary> </summary>
<remarks>This operation only makes sense on non-grouped ObjectListViews.</remarks> <remarks>此操作仅对未分组的ObjectListViews有意义。</remarks>
<param name="index"></param> <param name="index"></param>
<param name="modelObjects"></param> <param name="modelObjects"></param>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.HitTest(System.Int32,System.Int32)"> <member name="M:BrightIdeasSoftware.ObjectListView.HitTest(System.Int32,System.Int32)">
<summary> <summary>
Calculate what item is under the given point? 计算在给定点下的项目是什么?
</summary> </summary>
<param name="x"></param> <param name="x"></param>
<param name="y"></param> <param name="y"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.LowLevelHitTest(System.Int32,System.Int32)"> <member name="M:BrightIdeasSoftware.ObjectListView.LowLevelHitTest(System.Int32,System.Int32)">
<summary> <summary>
Perform a hit test using the Windows control's SUBITEMHITTEST message. 使用Windows控件的SUBITEMHITTEST消息执行点击测试。
This provides information about group hits that the standard ListView.HitTest() does not. 这提供了标准ListView.HitTest()不提供的有关组点击的信息。
</summary> </summary>
<param name="x"></param> <param name="x"></param>
<param name="y"></param> <param name="y"></param>
@ -15459,7 +15449,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.RemoveObject(System.Object)"> <member name="M:BrightIdeasSoftware.ObjectListView.RemoveObject(System.Object)">
<summary> <summary>
Remove the given model object from the ListView 从ListView中删除给定的模型对象
</summary> </summary>
<param name="modelObject">The model to be removed</param> <param name="modelObject">The model to be removed</param>
<remarks>See RemoveObjects() for more details <remarks>See RemoveObjects() for more details
@ -15467,58 +15457,56 @@
</remarks> </remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.RemoveObjects(System.Collections.ICollection)"> <member name="M:BrightIdeasSoftware.ObjectListView.RemoveObjects(System.Collections.ICollection)">
<summary> <summary>
Remove all of the given objects from the control. 从控件中移除所有给定对象。
</summary> </summary>
<param name="modelObjects">Collection of objects to be removed</param> <param name="modelObjects">Collection of objects to be removed</param>
<remarks> <remarks>
<para>Nulls and model objects that are not in the ListView are silently ignored.</para> <para>Nulls and model objects that are not in the ListView are silently ignored.</para>
<para>This method is thread-safe.</para> <para>This method is thread-safe.</para>
</remarks> </remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.SelectAll"> <member name="M:BrightIdeasSoftware.ObjectListView.SelectAll">
<summary> <summary>
Select all rows in the listview 选择列表视图中的所有行
</summary> </summary>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundWatermark(System.Drawing.Image)"> <member name="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundWatermark(System.Drawing.Image)">
<summary> <summary>
Set the given image to be fixed in the bottom right of the list view. 在列表视图的右下角设置要固定的给定图像。
This image will not scroll when the list view scrolls. 当列表视图滚动时,此图像不会滚动。
</summary> </summary>
<remarks> <remarks>
<para> <para>
This method uses ListView's native ability to display a background image. 此方法使用ListView的原生功能显示背景图像。
It has a few limitations: 它有几个限制:
</para> </para>
<list type="bullet"> <list type="bullet">
<item><description>It doesn't work well with owner drawn mode. In owner drawn mode, each cell draws itself, <item><description>它在owner drawn模式下不能很好地工作。在owner drawn绘制模式下
including its background, which covers the background image.</description></item> 每个单元格都会绘制自身,包括覆盖背景图像的背景。</description></item>
<item><description>It doesn't look very good when grid lines are enabled, since the grid lines are drawn over the image.</description></item> <item><description>启用网格线时看起来不是很好,因为网格线是在图像上绘制的。</description></item>
<item><description>It does not work at all on XP.</description></item> <item><description>它在XP上完全不起作用。</description></item>
<item><description>Obviously, it doesn't look good when alternate row background colors are enabled.</description></item> <item><description>显然,当启用交替行背景色时,效果不佳。</description></item>
</list> </list>
<para> <para>
If you can live with these limitations, native watermarks are quite neat. They are true backgrounds, not 如果你能忍受这些限制,原生水印就相当不错了。
translucent overlays like the OverlayImage uses. They also have the decided advantage over overlays in that 它们是真实的背景而不是像OverlayImage使用的半透明覆盖。
they work correctly even in MDI applications. 与覆盖相比它们也有明显的优势因为即使在MDI应用程序中它们也可以正常工作。
</para> </para>
<para>Setting this clears any background image.</para> <para>设置此选项将清除所有背景图像。</para>
</remarks> </remarks>
<param name="image">The image to be drawn. If null, any existing image will be removed.</param> <param name="image">The image to be drawn. If null, any existing image will be removed.</param>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundImage(System.Drawing.Image,System.Int32,System.Int32)"> <member name="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundImage(System.Drawing.Image,System.Int32,System.Int32)">
<summary> <summary>
Set the given image to be background of the ListView so that it appears at the given 将给定的图像设置为ListView的背景以便它在列表中以给定的百分比偏移量显示。
percentage offsets within the list.
</summary> </summary>
<remarks> <remarks>
<para>This has the same limitations as described in <see cref="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundWatermark(System.Drawing.Image)"/>. Make sure those limitations <para>这具有与 <see cref="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundWatermark(System.Drawing.Image)"/>中所述的相同限制.
are understood before using the method.</para> 在使用该方法之前,请确保了解这些限制。</para>
<para>This is very similar to setting the <see cref="P:System.Windows.Forms.Control.BackgroundImage"/> property of the standard .NET ListView, except that the standard <para>这非常类似于 <see cref="P:System.Windows.Forms.Control.BackgroundImage"/> 属性,
BackgroundImage does not handle images with transparent areas properly -- it renders transparent areas as black. This 但标准Backround Image不能正确处理具有透明区域的图像--它将透明区域呈现为黑色。这种方法没有这个问题。</para>
method does not have that problem.</para> <para>设置此选项将清除所有背景水印。</para>
<para>Setting this clears any background watermark.</para>
</remarks> </remarks>
<param name="image">The image to be drawn. If null, any existing image will be removed.</param> <param name="image">The image to be drawn. If null, any existing image will be removed.</param>
<param name="xOffset">The horizontal percentage where the image will be placed. 0 is absolute left, 100 is absolute right.</param> <param name="xOffset">The horizontal percentage where the image will be placed. 0 is absolute left, 100 is absolute right.</param>
@ -15526,64 +15514,63 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundTiledImage(System.Drawing.Image)"> <member name="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundTiledImage(System.Drawing.Image)">
<summary> <summary>
Set the given image to be the tiled background of the ListView. 将给定图像设置为ListView的平铺背景。
</summary> </summary>
<remarks> <remarks>
<para>This has the same limitations as described in <see cref="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundWatermark(System.Drawing.Image)"/> and <see cref="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundImage(System.Drawing.Image,System.Int32,System.Int32)"/>. <para>这具有与 <see cref="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundWatermark(System.Drawing.Image)"/><see cref="M:BrightIdeasSoftware.ObjectListView.SetNativeBackgroundImage(System.Drawing.Image,System.Int32,System.Int32)"/> 相同的限制.
Make sure those limitations 在使用该方法之前,请确保了解这些限制。</para>
are understood before using the method.</para>
</remarks> </remarks>
<param name="image">The image to be drawn. If null, any existing image will be removed.</param> <param name="image">要绘制的图像。如果为null则将删除所有现有图像。</param>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.SetObjects(System.Collections.IEnumerable)"> <member name="M:BrightIdeasSoftware.ObjectListView.SetObjects(System.Collections.IEnumerable)">
<summary> <summary>
Set the collection of objects that will be shown in this list view. 设置将在此列表视图中显示的对象集合。
</summary> </summary>
<remark>This method can safely be called from background threads.</remark> <remark>可以从后台线程安全地调用此方法。</remark>
<remarks>The list is updated immediately</remarks> <remarks>该列表将立即更新</remarks>
<param name="collection">The objects to be displayed</param> <param name="collection">The objects to be displayed</param>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.SetObjects(System.Collections.IEnumerable,System.Boolean)"> <member name="M:BrightIdeasSoftware.ObjectListView.SetObjects(System.Collections.IEnumerable,System.Boolean)">
<summary> <summary>
Set the collection of objects that will be shown in this list view. 设置将在此列表视图中显示的对象集合。
</summary> </summary>
<remark>This method can safely be called from background threads.</remark> <remark>可以从后台线程安全地调用此方法.</remark>
<remarks>The list is updated immediately</remarks> <remarks>该列表将立即更新</remarks>
<param name="collection">The objects to be displayed</param> <param name="collection">The objects to be displayed</param>
<param name="preserveState">Should the state of the list be preserved as far as is possible.</param> <param name="preserveState">是否应尽可能保留列表的状态。</param>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.UpdateObject(System.Object)"> <member name="M:BrightIdeasSoftware.ObjectListView.UpdateObject(System.Object)">
<summary> <summary>
Update the given model object into the ListView. The model will be added if it doesn't already exist. 将给定的模型对象更新到ListView中。
</summary> 如果该模型尚不存在,则会添加该模型。
<param name="modelObject">The model to be updated</param> </summary>
<remarks> <param name="modelObject">The model to be updated</param>
<para> <remarks>
See <see cref="M:BrightIdeasSoftware.ObjectListView.RemoveObjects(System.Collections.ICollection)"/> for more details <para>
</para> See <see cref="M:BrightIdeasSoftware.ObjectListView.RemoveObjects(System.Collections.ICollection)"/> for more details
<para>This method is thread-safe.</para> </para>
<para>This method will cause the list to be resorted.</para> <para>此方法是线程安全的。</para>
<para>This method only works on ObjectListViews and FastObjectListViews.</para> <para>此方法将导致重新排序列表。</para>
</remarks> <para>此方法仅适用于ObjectListViews和FastObjectListViews。</para>
</remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.UpdateObjects(System.Collections.ICollection)"> <member name="M:BrightIdeasSoftware.ObjectListView.UpdateObjects(System.Collections.ICollection)">
<summary> <summary>
Update the pre-existing models that are equal to the given objects. If any of the model doesn't 更新与给定对象相等的预先存在的模型。
already exist in the control, they will be added. 如果控件中不存在任何模型,则会添加它们。
</summary> </summary>
<param name="modelObjects">Collection of objects to be updated/added</param> <param name="modelObjects">Collection of objects to be updated/added</param>
<remarks> <remarks>
<para>This method will cause the list to be resorted.</para> <para>此方法将导致重新排序列表。</para>
<para>Nulls are silently ignored.</para> <para>null值将被静默忽略。</para>
<para>This method is thread-safe.</para> <para>此方法是线程安全的。</para>
<para>This method only works on ObjectListViews and FastObjectListViews.</para> <para>此方法仅适用于ObjectListViews和FastObjectListViews。</para>
</remarks> </remarks>
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.UpdateNotificationSubscriptions(System.Collections.IEnumerable)"> <member name="M:BrightIdeasSoftware.ObjectListView.UpdateNotificationSubscriptions(System.Collections.IEnumerable)">
<summary> <summary>
Change any subscriptions to INotifyPropertyChanged events on our current 更改当前模型对象上对INotifyPropertyChanged事件的任何订阅
model objects so that we no longer listen for events on the old models 以便我们不再侦听旧模型上的事件,而侦听给定集合上的事件。
and do listen for events on the given collection.
</summary> </summary>
<remarks>This does nothing if UseNotifyPropertyChanged is false.</remarks> <remarks>This does nothing if UseNotifyPropertyChanged is false.</remarks>
<param name="collection"></param> <param name="collection"></param>
@ -16607,7 +16594,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.GetCellToolTip(System.Int32,System.Int32)"> <member name="M:BrightIdeasSoftware.ObjectListView.GetCellToolTip(System.Int32,System.Int32)">
<summary> <summary>
Return the tooltip that should be shown when the mouse is hovered over the given cell 返回当鼠标悬停在给定单元格上时应显示的工具提示
</summary> </summary>
<param name="columnIndex">The column index whose tool tip is to be fetched</param> <param name="columnIndex">The column index whose tool tip is to be fetched</param>
<param name="rowIndex">The row index whose tool tip is to be fetched</param> <param name="rowIndex">The row index whose tool tip is to be fetched</param>
@ -16615,7 +16602,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.ModelToItem(System.Object)"> <member name="M:BrightIdeasSoftware.ObjectListView.ModelToItem(System.Object)">
<summary> <summary>
Return the OLVListItem that displays the given model object 返回显示给定模型对象的OLVListItem
</summary> </summary>
<param name="modelObject">The modelObject whose item is to be found</param> <param name="modelObject">The modelObject whose item is to be found</param>
<returns>The OLVListItem that displays the model, or null</returns> <returns>The OLVListItem that displays the model, or null</returns>
@ -16633,7 +16620,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.PrepareAlternateBackColors"> <member name="M:BrightIdeasSoftware.ObjectListView.PrepareAlternateBackColors">
<summary> <summary>
Prepare the listview to show alternate row backcolors 准备列表视图以显示交替的行背景色
</summary> </summary>
<remarks>We cannot rely on lvi.Index in this method. <remarks>We cannot rely on lvi.Index in this method.
In a straight list, lvi.Index is the display index, and can be used to determine In a straight list, lvi.Index is the display index, and can be used to determine
@ -16648,7 +16635,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.SetSubItemImages(System.Int32,BrightIdeasSoftware.OLVListItem)"> <member name="M:BrightIdeasSoftware.ObjectListView.SetSubItemImages(System.Int32,BrightIdeasSoftware.OLVListItem)">
<summary> <summary>
Tell the underlying list control which images to show against the subitems 告诉基础列表控件针对子项显示哪些图像
</summary> </summary>
<param name="rowIndex">the index at which the item occurs</param> <param name="rowIndex">the index at which the item occurs</param>
<param name="item">the item whose subitems are to be set</param> <param name="item">the item whose subitems are to be set</param>
@ -16687,7 +16674,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.TriggerFormatRowEvent(System.Int32,System.Int32,BrightIdeasSoftware.OLVListItem)"> <member name="M:BrightIdeasSoftware.ObjectListView.TriggerFormatRowEvent(System.Int32,System.Int32,BrightIdeasSoftware.OLVListItem)">
<summary> <summary>
Trigger FormatRow and possibly FormatCell events for the given item 触发给定项目的FormatRow和可能的FormatCell事件
</summary> </summary>
<param name="rowIndex"></param> <param name="rowIndex"></param>
<param name="displayIndex"></param> <param name="displayIndex"></param>
@ -16695,7 +16682,7 @@
</member> </member>
<member name="M:BrightIdeasSoftware.ObjectListView.TriggerFormatCellEvents(System.Int32,System.Int32,BrightIdeasSoftware.OLVListItem)"> <member name="M:BrightIdeasSoftware.ObjectListView.TriggerFormatCellEvents(System.Int32,System.Int32,BrightIdeasSoftware.OLVListItem)">
<summary> <summary>
Trigger FormatCell events for the given item 触发给定项目的FormatCell事件
</summary> </summary>
<param name="rowIndex"></param> <param name="rowIndex"></param>
<param name="displayIndex"></param> <param name="displayIndex"></param>
@ -22335,6 +22322,20 @@
<param name="value">The value of the aspect that should be displayed</param> <param name="value">The value of the aspect that should be displayed</param>
<returns>A string representation of the aspect</returns> <returns>A string representation of the aspect</returns>
</member> </member>
<member name="M:BrightIdeasSoftware.OLVColumn.ValueToString(System.Object,System.Object)">
<summary>
Convert the aspect object to its string representation.
</summary>
<remarks>
If the column has been given a AspectToStringConverter, that will be used to do
the conversion, otherwise just use ToString().
The returned value will not be null. Nulls are always converted
to empty strings.
</remarks>
<param name = "rowobject" ></param>
<param name="value">The value of the aspect that should be displayed</param>
<returns>A string representation of the aspect</returns>
</member>
<member name="M:BrightIdeasSoftware.OLVColumn.DecideDefaultClusteringStrategy"> <member name="M:BrightIdeasSoftware.OLVColumn.DecideDefaultClusteringStrategy">
<summary> <summary>
Decide the clustering strategy that will be used for this column Decide the clustering strategy that will be used for this column

Binary file not shown.

View File

@ -1,4 +1,10 @@
### 2021-09-07更新 ### 2021-10-08更新
------
#### VSoft V1.0.2110.0801
- *.[新增]新增支持将分类绑定快捷键。
- *.[修复]修复新增软件后,热键可能设置不正确的BUG
### 2021-09-07更新
------ ------
#### VSoft V1.0.2109.0701 #### VSoft V1.0.2109.0701
- *.[新增]新增支持设置软件全局快捷键。 - *.[新增]新增支持设置软件全局快捷键。

Binary file not shown.

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示: //通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.2109.0701")] [assembly: AssemblyVersion("1.0.2110.0801")]
[assembly: AssemblyFileVersion("1.0.2109.0701")] [assembly: AssemblyFileVersion("1.0.2110.0801")]

View File

@ -117,7 +117,7 @@
// label6 // label6
// //
this.label6.AutoSize = true; this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(239, 39); this.label6.Location = new System.Drawing.Point(239, 38);
this.label6.Name = "label6"; this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(65, 12); this.label6.Size = new System.Drawing.Size(65, 12);
this.label6.TabIndex = 13; this.label6.TabIndex = 13;
@ -382,7 +382,7 @@
// label1 // label1
// //
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 39); this.label1.Location = new System.Drawing.Point(10, 38);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 12); this.label1.Size = new System.Drawing.Size(41, 12);
this.label1.TabIndex = 1; this.label1.TabIndex = 1;
@ -424,7 +424,6 @@
this.Controls.Add(this.PicImg); this.Controls.Add(this.PicImg);
this.Controls.Add(this.label1); this.Controls.Add(this.label1);
this.Controls.Add(this.TxtName); this.Controls.Add(this.TxtName);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmAddSoft"; this.Name = "FrmAddSoft";
this.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));

View File

@ -28,119 +28,142 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAddType)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAddType));
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.TxtDes = new ryControls.TextBoxEx2(); this.TxtDes = new ryControls.TextBoxEx2();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.TxtName = new ryControls.TextBoxEx2(); this.TxtName = new ryControls.TextBoxEx2();
this.BtnCancel = new ryControls.ButtonEx(); this.BtnCancel = new ryControls.ButtonEx();
this.BtnOK = new ryControls.ButtonEx(); this.BtnOK = new ryControls.ButtonEx();
this.SuspendLayout(); this.label7 = new System.Windows.Forms.Label();
// this.hotkeyTextBox1 = new ryControls.HotkeyTextBox();
// label2 this.SuspendLayout();
// //
this.label2.AutoSize = true; // label2
this.label2.Location = new System.Drawing.Point(12, 81); //
this.label2.Name = "label2"; this.label2.AutoSize = true;
this.label2.Size = new System.Drawing.Size(29, 12); this.label2.Location = new System.Drawing.Point(12, 77);
this.label2.TabIndex = 16; this.label2.Name = "label2";
this.label2.Text = "备注"; this.label2.Size = new System.Drawing.Size(29, 12);
// this.label2.TabIndex = 16;
// TxtDes this.label2.Text = "备注";
// //
this.TxtDes.BackColor = System.Drawing.Color.White; // TxtDes
this.TxtDes.EmptyText = ""; //
this.TxtDes.Location = new System.Drawing.Point(12, 101); this.TxtDes.BackColor = System.Drawing.Color.White;
this.TxtDes.MaxLength = 999999999; this.TxtDes.EmptyText = "";
this.TxtDes.Multiline = false; this.TxtDes.Location = new System.Drawing.Point(12, 95);
this.TxtDes.Name = "TxtDes"; this.TxtDes.MaxLength = 999999999;
this.TxtDes.OnlyNumeric = false; this.TxtDes.Multiline = false;
this.TxtDes.PasswordChar = '\0'; this.TxtDes.Name = "TxtDes";
this.TxtDes.ReadOnly = false; this.TxtDes.OnlyNumeric = false;
this.TxtDes.SelectedText = ""; this.TxtDes.PasswordChar = '\0';
this.TxtDes.SelectionLength = 0; this.TxtDes.ReadOnly = false;
this.TxtDes.SelectionStart = 0; this.TxtDes.SelectedText = "";
this.TxtDes.Size = new System.Drawing.Size(327, 22); this.TxtDes.SelectionLength = 0;
this.TxtDes.TabIndex = 15; this.TxtDes.SelectionStart = 0;
this.TxtDes.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.TxtDes.Size = new System.Drawing.Size(327, 22);
this.TxtDes.ToolTip = ""; this.TxtDes.TabIndex = 15;
this.TxtDes.WordWrap = true; this.TxtDes.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
// this.TxtDes.ToolTip = "";
// label1 this.TxtDes.WordWrap = true;
// //
this.label1.AutoSize = true; // label1
this.label1.Location = new System.Drawing.Point(12, 34); //
this.label1.Name = "label1"; this.label1.AutoSize = true;
this.label1.Size = new System.Drawing.Size(29, 12); this.label1.Location = new System.Drawing.Point(12, 34);
this.label1.TabIndex = 12; this.label1.Name = "label1";
this.label1.Text = "名称"; this.label1.Size = new System.Drawing.Size(29, 12);
// this.label1.TabIndex = 12;
// TxtName this.label1.Text = "名称";
// //
this.TxtName.BackColor = System.Drawing.Color.White; // TxtName
this.TxtName.EmptyText = ""; //
this.TxtName.Location = new System.Drawing.Point(12, 54); this.TxtName.BackColor = System.Drawing.Color.White;
this.TxtName.MaxLength = 999999999; this.TxtName.EmptyText = "";
this.TxtName.Multiline = false; this.TxtName.Location = new System.Drawing.Point(12, 50);
this.TxtName.Name = "TxtName"; this.TxtName.MaxLength = 999999999;
this.TxtName.OnlyNumeric = false; this.TxtName.Multiline = false;
this.TxtName.PasswordChar = '\0'; this.TxtName.Name = "TxtName";
this.TxtName.ReadOnly = false; this.TxtName.OnlyNumeric = false;
this.TxtName.SelectedText = ""; this.TxtName.PasswordChar = '\0';
this.TxtName.SelectionLength = 0; this.TxtName.ReadOnly = false;
this.TxtName.SelectionStart = 0; this.TxtName.SelectedText = "";
this.TxtName.Size = new System.Drawing.Size(327, 22); this.TxtName.SelectionLength = 0;
this.TxtName.TabIndex = 11; this.TxtName.SelectionStart = 0;
this.TxtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.TxtName.Size = new System.Drawing.Size(327, 22);
this.TxtName.ToolTip = ""; this.TxtName.TabIndex = 11;
this.TxtName.WordWrap = true; this.TxtName.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
// this.TxtName.ToolTip = "";
// BtnCancel this.TxtName.WordWrap = true;
// //
this.BtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); // BtnCancel
this.BtnCancel.BaseColor = System.Drawing.Color.Teal; //
this.BtnCancel.ColorGradient = true; this.BtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnCancel.Location = new System.Drawing.Point(263, 133); this.BtnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.BtnCancel.Name = "BtnCancel"; this.BtnCancel.ColorGradient = true;
this.BtnCancel.Size = new System.Drawing.Size(75, 27); this.BtnCancel.Location = new System.Drawing.Point(263, 180);
this.BtnCancel.TabIndex = 10; this.BtnCancel.Name = "BtnCancel";
this.BtnCancel.Text = "取消"; this.BtnCancel.Size = new System.Drawing.Size(75, 27);
this.BtnCancel.UseVisualStyleBackColor = true; this.BtnCancel.TabIndex = 10;
this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click); this.BtnCancel.Text = "取消";
// this.BtnCancel.UseVisualStyleBackColor = true;
// BtnOK this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
// //
this.BtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); // BtnOK
this.BtnOK.BaseColor = System.Drawing.Color.Teal; //
this.BtnOK.ColorGradient = true; this.BtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.BtnOK.Location = new System.Drawing.Point(182, 133); this.BtnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.BtnOK.Name = "BtnOK"; this.BtnOK.ColorGradient = true;
this.BtnOK.Size = new System.Drawing.Size(75, 27); this.BtnOK.Location = new System.Drawing.Point(182, 180);
this.BtnOK.TabIndex = 9; this.BtnOK.Name = "BtnOK";
this.BtnOK.Text = "确定"; this.BtnOK.Size = new System.Drawing.Size(75, 27);
this.BtnOK.UseVisualStyleBackColor = true; this.BtnOK.TabIndex = 9;
this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click); this.BtnOK.Text = "确定";
// this.BtnOK.UseVisualStyleBackColor = true;
// FrmAddType this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click);
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); // label7
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; //
this.ClientSize = new System.Drawing.Size(349, 167); this.label7.AutoSize = true;
this.Controls.Add(this.label2); this.label7.Location = new System.Drawing.Point(12, 121);
this.Controls.Add(this.TxtDes); this.label7.Name = "label7";
this.Controls.Add(this.label1); this.label7.Size = new System.Drawing.Size(53, 12);
this.Controls.Add(this.TxtName); this.label7.TabIndex = 18;
this.Controls.Add(this.BtnCancel); this.label7.Text = "运行热键";
this.Controls.Add(this.BtnOK); //
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; // hotkeyTextBox1
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); //
this.MaximizeBox = false; this.hotkeyTextBox1.BackColor = System.Drawing.Color.White;
this.Name = "FrmAddType"; this.hotkeyTextBox1.HotKey = "0+0";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.hotkeyTextBox1.Location = new System.Drawing.Point(12, 140);
this.Text = "添加分类"; this.hotkeyTextBox1.Name = "hotkeyTextBox1";
this.ResumeLayout(false); this.hotkeyTextBox1.Size = new System.Drawing.Size(244, 26);
this.PerformLayout(); this.hotkeyTextBox1.T_Key = System.Windows.Forms.Keys.None;
this.hotkeyTextBox1.T_Modifiers = 0;
this.hotkeyTextBox1.TabIndex = 17;
//
// FrmAddType
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(349, 214);
this.Controls.Add(this.label7);
this.Controls.Add(this.hotkeyTextBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.TxtDes);
this.Controls.Add(this.label1);
this.Controls.Add(this.TxtName);
this.Controls.Add(this.BtnCancel);
this.Controls.Add(this.BtnOK);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "FrmAddType";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "添加分类";
this.ResumeLayout(false);
this.PerformLayout();
} }
#endregion #endregion
@ -150,6 +173,8 @@
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
public ryControls.TextBoxEx2 TxtName; public ryControls.TextBoxEx2 TxtName;
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
public ryControls.TextBoxEx2 TxtDes; public ryControls.TextBoxEx2 TxtDes;
private System.Windows.Forms.Label label7;
public ryControls.HotkeyTextBox hotkeyTextBox1;
} }
} }

View File

@ -1,4 +1,5 @@
using ryCommonDb; using ryCommon;
using ryCommonDb;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
@ -22,6 +23,10 @@ namespace VSoft
public int IsAdd { get; set; } = 1; public int IsAdd { get; set; } = 1;
public int SelectId { get; set; } = -1; public int SelectId { get; set; } = -1;
public int ParentId { get; set; } = -1; public int ParentId { get; set; } = -1;
/// <summary>
/// 当前操作的id
/// </summary>
public int Op_Id { get; set; } = -1;
public void GetInfo(int id) public void GetInfo(int id)
{ {
SelectId = id; SelectId = id;
@ -36,7 +41,8 @@ namespace VSoft
DataRow reader = ds.Tables[0].Rows[0]; DataRow reader = ds.Tables[0].Rows[0];
#region #region
TxtName.Text = reader["Name"].ToString(); TxtName.Text = reader["Name"].ToString();
TxtDes.Text = reader["Des"].ToString(); TxtDes.Text = reader["Des"].ToString();
hotkeyTextBox1.HotKey = reader["Hotkey"].ToString();
#endregion #endregion
} }
ds.Dispose(); ds.Dispose();
@ -57,7 +63,8 @@ namespace VSoft
} }
RyQuickSQL mySQL = new RyQuickSQL(tableName); RyQuickSQL mySQL = new RyQuickSQL(tableName);
mySQL.AddField("Name", TxtName.Text); mySQL.AddField("Name", TxtName.Text);
mySQL.AddField("Des", TxtDes.Text); mySQL.AddField("Des", TxtDes.Text);
mySQL.AddField("Hotkey", hotkeyTextBox1.HaveHotKey ? hotkeyTextBox1.HotKey : "");//快捷键
mySQL.AddField("editTime", DateTime.Now); mySQL.AddField("editTime", DateTime.Now);
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1) if (db.ConnDb(SQLConnStr) == 1)
@ -66,12 +73,18 @@ namespace VSoft
{ {
mySQL.AddField("sortindex", Itrycn_Db.GetColumnCount(db, ParentId) + 1); mySQL.AddField("sortindex", Itrycn_Db.GetColumnCount(db, ParentId) + 1);
mySQL.AddField("parentId", ParentId); mySQL.AddField("parentId", ParentId);
mySQL.AddField("addTime", DateTime.Now); mySQL.AddField("addTime", DateTime.Now);
db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL); var ds = db.ReadData(mySQL.GetInsertSQL() + ";select last_insert_rowid();", mySQL);
if (ds.HaveData())
{
Op_Id = ds.GetFirstRowCellValue();
}
ds.Dispose();
} }
else else
{ {
db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + SelectId, mySQL); db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + SelectId, mySQL);
Op_Id = SelectId;
} }
} }
db.Free(); db.Free();

View File

@ -1,167 +1,167 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
--> -->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
AAABAAEAGBgAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAA AAABAAEAGBgAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAA
AAAAAAAUAAAAagAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAA AAAAAAAUAAAAagAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACOAAAAjgAA
AI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACNAAAAVAAAAAgAAABOAAAA5AAAAPkAAAD4AAAA+AAA AI4AAACOAAAAjgAAAI4AAACOAAAAjgAAAI4AAACNAAAAVAAAAAgAAABOAAAA5AAAAPkAAAD4AAAA+AAA
APgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAA APgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPgAAAD4AAAA+AAA
APgAAAD6AAAAywAAACYBAQFrAQEB+wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEB APgAAAD6AAAAywAAACYBAQFrAQEB+wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEB
Af8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB6gEBATgDAwNrBAQE+gQE Af8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB6gEBATgDAwNrBAQE+gQE
BP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQE BP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQEBP8EBAT/BAQE/wQE
BP8EBAT/BAQE/wQEBP8EBAT/BAQE6gMDAzgGBgZrBwcH+gcHCP8HBwj/BwcI/wcHCP8HBwf/BQUF/wQE BP8EBAT/BAQE/wQEBP8EBAT/BAQE6gMDAzgGBgZrBwcH+gcHCP8HBwj/BwcI/wcHCP8HBwf/BQUF/wQE
BP8EBAT/BAQE/wYGBv8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcH6gUF BP8EBAT/BAQE/wYGBv8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcI/wcHCP8HBwj/BwcH6gUF
BTgICAlrCwsL+gsLC/8LCwv/CwsL/wsLC/8NDQ3/Li4v/zc3N/83Nzf/Nzc3/yAgIP8KCgr/CwsL/wsL BTgICAlrCwsL+gsLC/8LCwv/CwsL/wsLC/8NDQ3/Li4v/zc3N/83Nzf/Nzc3/yAgIP8KCgr/CwsL/wsL
C/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CgoL6gcHBzgLCwxrDw8P+g8PD/8PDw//Dw8P/w0N C/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CgoL6gcHBzgLCwxrDw8P+g8PD/8PDw//Dw8P/w0N
Df8qKiv/n5+f/66urv+tra3/r6+v/3l5ef8RERH/Dg4P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8P Df8qKiv/n5+f/66urv+tra3/r6+v/3l5ef8RERH/Dg4P/w8PD/8PDw//Dw8P/w8PD/8PDw//Dw8P/w8P
D/8PDw//Dg4O6gkJCjgPDw9rExMU+hMTFP8TExT/ExMU/xAQEf9fX1//u7u7/76+vv+/v7//vb29/6mp D/8PDw//Dg4O6gkJCjgPDw9rExMU+hMTFP8TExT/ExMU/xAQEf9fX1//u7u7/76+vv+/v7//vb29/6mp
qf8uLi//ERES/xMTFP8TExT/ExMU/xMTFP8TExT/ExMU/xMTFP8TExT/EhIT6gwMDDgSEhNrFxcY+hcX qf8uLi//ERES/xMTFP8TExT/ExMU/xMTFP8TExT/ExMU/xMTFP8TExT/EhIT6gwMDDgSEhNrFxcY+hcX
GP8XFxj/FxcY/x8fIP+ZmZn/ycnJ/87Ozv/Q0ND/zMzM/8XFxf9kZGT/FBQV/xgYGf8XFxj/FxcY/xcX GP8XFxj/FxcY/x8fIP+ZmZn/ycnJ/87Ozv/Q0ND/zMzM/8XFxf9kZGT/FBQV/xgYGf8XFxj/FxcY/xcX
GP8XFxj/FxcY/xcXGP8YGBn/FhYX6g8PDzgWFhZrHBwd+h0dHf8dHR3/GRka/0ZGR//CwsL/1NTU/9zc GP8XFxj/FxcY/xcXGP8YGBn/FhYX6g8PDzgWFhZrHBwd+h0dHf8dHR3/GRka/0ZGR//CwsL/1NTU/9zc
3P/e3t7/2dnZ/9LS0v+enp7/IyMk/xwcHf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/Gxsc6hIS 3P/e3t7/2dnZ/9LS0v+enp7/IyMk/xwcHf8dHR3/HR0d/x0dHf8dHR3/HR0d/x0dHf8dHR3/Gxsc6hIS
EzgZGRprICAh+iEhIv8hISL/Hh4f/4CAgP/U1NT/3t7e/+Xl5f/o6Oj/4+Pj/9ra2v/Fxcb/SUlK/x4e EzgZGRprICAh+iEhIv8hISL/Hh4f/4CAgP/U1NT/3t7e/+Xl5f/o6Oj/4+Pj/9ra2v/Fxcb/SUlK/x4e
H/8hISL/ISEi/yEhIv8hISL/ISEi/yEhIv8hISL/Hx8h6hUVFjgdHR5rJSUn+iYmJ/8kJCb/NDQ1/7W1 H/8hISL/ISEi/yEhIv8hISL/ISEi/yEhIv8hISL/Hx8h6hUVFjgdHR5rJSUn+iYmJ/8kJCb/NDQ1/7W1
tf/c3Nz/5eXl/+Dg4P/Fxcb/6enp/+Hh4f/Y2Nj/goKD/yMjJP8mJif/JiYn/yYmJ/8mJij/JiYo/yYm tf/c3Nz/5eXl/+Dg4P/Fxcb/6enp/+Hh4f/Y2Nj/goKD/yMjJP8mJif/JiYn/yYmJ/8mJij/JiYo/yYm
J/8mJif/JCQm6hgYGTghISJrKyss+iwsLf8nJyj/YmJj/9TU1P/i4uL/7Ozs/729vf9ra2v/4+Pj/+jo J/8mJif/JCQm6hgYGTghISJrKyss+iwsLf8nJyj/YmJj/9TU1P/i4uL/7Ozs/729vf9ra2v/4+Pj/+jo
6P/f39//t7e3/zg4Of8qKiv/Kyst/ycnKP8hISL/IyMk/yoqK/8sLC3/Kior6hsbHDglJSZrLy8w+i8v 6P/f39//t7e3/zg4Of8qKiv/Kyst/ycnKP8hISL/IyMk/yoqK/8sLC3/Kior6hsbHDglJSZrLy8w+i8v
Mf8vLzD/nJyd/+Dg4P/p6en/7u7u/4aGh/84ODn/wcHB/+7u7v/l5eX/1tbW/2VlZf8rKy3/LCwt/0BA Mf8vLzD/nJyd/+Dg4P/p6en/7u7u/4aGh/84ODn/wcHB/+7u7v/l5eX/1tbW/2VlZf8rKy3/LCwt/0BA
Qf9ubm//X19f/zAwMf8vLzD/Li4v6h4eHzgoKClrMzM1+jIyNP9MTE3/ysrK/+fn5//u7u7/29vb/1RU Qf9ubm//X19f/zAwMf8vLzD/Li4v6h4eHzgoKClrMzM1+jIyNP9MTE3/ysrK/+fn5//u7u7/29vb/1RU
Vf8vLzH/iYmK/+/v7//s7Oz/4+Pj/56en/8yMjP/QkJD/6qqqv/Kysr/x8fG/3t7fP8yMjT/MjI06iEh Vf8vLzH/iYmK/+/v7//s7Oz/4+Pj/56en/8yMjP/QkJD/6qqqv/Kysr/x8fG/3t7fP8yMjT/MjI06iEh
IjgsLC1rODg6+jQ0Nv9+foD/4eHh/+3t7f/09PP/sLCx/zw8Pv83Nzn/WFha/93d3v/y8vL/6enp/83N IjgsLC1rODg6+jQ0Nv9+foD/4eHh/+3t7f/09PP/sLCx/zw8Pv83Nzn/WFha/93d3v/y8vL/6enp/83N
zv9MTE7/Xl5g/8/Pz//V1dX/1tbW/6qqqv89PT//NjY56iQkJTgvLzFrPDw++kRERf+3t7f/6urq//Pz zv9MTE7/Xl5g/8/Pz//V1dX/1tbW/6qqqv89PT//NjY56iQkJTgvLzFrPDw++kRERf+3t7f/6urq//Pz
8//v7+//enp7/zs7Pf89PT//QUFC/7OztP/29vb/8PDw/+bm5v+FhYX/S0tN/7y8vP/l5eX/3t7e/4mJ 8//v7+//enp7/zs7Pf89PT//QUFC/7OztP/29vb/8PDw/+bm5v+FhYX/S0tN/7y8vP/l5eX/3t7e/4mJ
iv89PT//Ozs96icnKDgyMjRrQEBC+k1NT/9+fn//iYmK/42Njv+FhYb/Tk5Q/0FBQ/9CQkT/QEBC/2Rk iv89PT//Ozs96icnKDgyMjRrQEBC+k1NT/9+fn//iYmK/42Njv+FhYb/Tk5Q/0FBQ/9CQkT/QEBC/2Rk
Zf+NjY7/i4uM/4iIif9wcHH/QkJE/1paXP+FhYb/d3d4/0lJS/9BQUP/Pz9B6ioqKzg2NjdrRUVH+kVF Zf+NjY7/i4uM/4iIif9wcHH/QkJE/1paXP+FhYb/d3d4/0lJS/9BQUP/Pz9B6ioqKzg2NjdrRUVH+kVF
SP9DQ0X/QkJF/0JCRf9DQ0X/RUVH/0ZGSP9GRkj/RkZI/0RERv9CQkX/QkJF/0JCRf9EREb/RkZI/0RE SP9DQ0X/QkJF/0JCRf9DQ0X/RUVH/0ZGSP9GRkj/RkZI/0RERv9CQkX/QkJF/0JCRf9EREb/RkZI/0RE
R/9CQkX/Q0NF/0VFSP9GRkj/Q0NF6iwsLTg5OTprSEhL+kpKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJ R/9CQkX/Q0NF/0VFSP9GRkj/Q0NF6iwsLTg5OTprSEhL+kpKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJ
TP9JSUz/SUlM/0pKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJTP9KSkz/SkpM/0lJTP9KSkz/R0dJ6i4u TP9JSUz/SUlM/0pKTP9KSkz/SkpM/0pKTP9KSkz/SUlM/0lJTP9KSkz/SkpM/0lJTP9KSkz/R0dJ6i4u
MDg7Oz1rS0tN+k1NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01N MDg7Oz1rS0tN+k1NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//TU1P/01N
T/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//SkpM6jExMjg/P0FoTk5R+09PUv9PT1L/T09S/09P T/9NTU//TU1P/01NT/9NTU//TU1P/01NT/9NTU//SkpM6jExMjg/P0FoTk5R+09PUv9PT1L/T09S/09P
Uv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09P Uv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09PUv9PT1L/T09S/09P
Uv9PT1L/TExP6jQ0NjZMTE9AVlZZ31VVWPlVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVV Uv9PT1L/TExP6jQ0NjZMTE9AVlZZ31VVWPlVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVV
WPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVn6VlZZw0RERRxgYGIFcXF1PW1t WPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVj4VVVY+FVVWPhVVVn6VlZZw0RERRxgYGIFcXF1PW1t
cVpsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxs cVpsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxscFlsbHBZbGxwWWxs
cFlsbHBZbGxwWWxscFltbXJZcHBzLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cFlsbHBZbGxwWWxscFltbXJZcHBzLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA= AAA=
</value> </value>
</data> </data>
</root> </root>

View File

@ -426,6 +426,8 @@
this.IconViewEx1.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181))))); this.IconViewEx1.SelectedEndBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(236)))), ((int)(((byte)(181)))));
this.IconViewEx1.SelectedForeColor = System.Drawing.Color.Black; this.IconViewEx1.SelectedForeColor = System.Drawing.Color.Black;
this.IconViewEx1.SelectedStartBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(251)))), ((int)(((byte)(237))))); this.IconViewEx1.SelectedStartBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(251)))), ((int)(((byte)(237)))));
this.IconViewEx1.ShowGroups = false;
this.IconViewEx1.ShowItemToolTips = true;
this.IconViewEx1.Size = new System.Drawing.Size(650, 467); this.IconViewEx1.Size = new System.Drawing.Size(650, 467);
this.IconViewEx1.TabIndex = 0; this.IconViewEx1.TabIndex = 0;
this.IconViewEx1.TextHeight = 20; this.IconViewEx1.TextHeight = 20;
@ -439,6 +441,7 @@
this.IconViewEx1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.IconViewEx1_KeyDown); this.IconViewEx1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.IconViewEx1_KeyDown);
this.IconViewEx1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseClick); this.IconViewEx1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseClick);
this.IconViewEx1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseDoubleClick); this.IconViewEx1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseDoubleClick);
this.IconViewEx1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.IconViewEx1_MouseMove);
this.IconViewEx1.Resize += new System.EventHandler(this.IconViewEx1_Resize); this.IconViewEx1.Resize += new System.EventHandler(this.IconViewEx1_Resize);
// //
// TabList_Column // TabList_Column
@ -491,7 +494,6 @@
this.Controls.Add(this.BtnAddColumn); this.Controls.Add(this.BtnAddColumn);
this.Controls.Add(this.TabList_Column); this.Controls.Add(this.TabList_Column);
this.Controls.Add(this.panelEx1); this.Controls.Add(this.panelEx1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MinimumSize = new System.Drawing.Size(160, 60); this.MinimumSize = new System.Drawing.Size(160, 60);
this.Name = "FrmVSoft"; this.Name = "FrmVSoft";

View File

@ -48,6 +48,7 @@ namespace VSoft
PnlLeft.BackColor = backcolor; PnlLeft.BackColor = backcolor;
} }
private ToolTip lvTp = new ToolTip();
private void FrmVSoft_FormClosed(object sender, FormClosedEventArgs e) private void FrmVSoft_FormClosed(object sender, FormClosedEventArgs e)
{ {
mouse.Stop(); mouse.Stop();
@ -243,6 +244,7 @@ namespace VSoft
TabList_Type.Items[0].Selected = true; TabList_Type.Items[0].Selected = true;
} }
} }
int hot_index = 0;
/// <summary> /// <summary>
/// 注册热键 /// 注册热键
/// </summary> /// </summary>
@ -252,19 +254,34 @@ namespace VSoft
IDbInterface db2 = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); IDbInterface db2 = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db2.ConnDb(SQLConnStr) == 1) if (db2.ConnDb(SQLConnStr) == 1)
{ {
var index = 100;
HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey); HotkeyValue hot = new HotkeyValue(Soft_Config.ShowMainHotKey);
hotkey.RegHotKey(100, hot.Modifiers_Int, hot.KeyCode); hotkey.RegHotKey(100, hot.Modifiers_Int, hot.KeyCode);
var ds_type = db2.ReadData("select * from Columns where Hotkey<>''");
if (ds_type.HaveData())
{
for (int i = 0; i < ds_type.Tables[0].Rows.Count; i++)
{
index++;
var item = ds_type.GetRow(i);
hot.LoadHotKeyStr(item["HotKey"].ToString());
hotkey.RegHotKey(index, "type_" + item["id"].ToInt(), hot.Modifiers_Int, hot.KeyCode);
}
}
ds_type.Dispose();
var ds = db2.ReadData("select * from Softs where Hotkey<>''"); var ds = db2.ReadData("select * from Softs where Hotkey<>''");
if (ds.HaveData()) if (ds.HaveData())
{ {
for (int i = 0; i < ds.Tables[0].Rows.Count; i++) for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{ {
index++;
var item = ds.GetRow(i); var item = ds.GetRow(i);
hot.LoadHotKeyStr(item["HotKey"].ToString()); hot.LoadHotKeyStr(item["HotKey"].ToString());
hotkey.RegHotKey(100 + item["id"].ToInt(), hot.Modifiers_Int, hot.KeyCode); hotkey.RegHotKey(index, "soft_" + item["id"].ToInt(), hot.Modifiers_Int, hot.KeyCode);
} }
} }
ds.Dispose(); ds.Dispose();
hot_index = index;
} }
db2.Free(); db2.Free();
} }
@ -359,30 +376,75 @@ namespace VSoft
ShowOrHideUI(); ShowOrHideUI();
break; break;
default: default:
var id = HotKeyID - 100; var ids=hotkey.GetTag(HotKeyID);
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); if(ids.IndexOfEx("type_")==0)
if (db.ConnDb(SQLConnStr) == 1)
{ {
var sql = "select * from Softs where id="+id; #region
DataSet ds = db.ReadData("select * from Softs where id=" + id); var id = ids.Substring(5).ToInt();
if(ds.HaveData()) IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{ {
DataRow row = ds.GetFirstRowData(); //var sql = "select * from Columns where id=" + id;
SoftInfo info = new SoftInfo(); DataSet ds = db.ReadData("select * from Columns where id=" + id);
info.Id = row["id"].ToInt(); if (ds.HaveData())
info.SoftType = row["SoftType"].ToInt(); {
info.ColumnId = row["ColumnId"].ToInt(); DataRow row = ds.GetFirstRowData();
info.Name = row["Name"].ToString(); var parentId=row["parentId"].ToInt();
info.Path = row["Path"].ToString(); if(parentId>0)
info.RunPram = row["RunPram"].ToString(); {
info.SetJson = row["SetJson"].ToString(); for (int i = 0; i < TabList_Column.Items.Count; i++)
info.StartPath = row["StartPath"].ToString(); {
info.IconPath = row["IconPath"].ToString(); if (TabList_Column.Items[i].Tag.ToInt()==parentId)
VSoft.Prams.Run.Open(info, false); {
TabList_Column.Items[i].Selected = true;
for (int m = 0; m < TabList_Type.Items.Count; m++)
{
if (TabList_Type.Items[m].Tag.ToInt() == row["id"].ToInt())
{
TabList_Type.Items[m].Selected = true;
ShowOrHideUI(true);
break;
}
}
break;
}
}
}
}
db.Free();
} }
db.Free(); db.Free();
#endregion
}
else if (ids.IndexOfEx("soft_") == 0)
{
#region
var id = ids.Substring(5).ToInt();
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1)
{
//var sql = "select * from Softs where id=" + id;
DataSet ds = db.ReadData("select * from Softs where id=" + id);
if (ds.HaveData())
{
DataRow row = ds.GetFirstRowData();
SoftInfo info = new SoftInfo();
info.Id = row["id"].ToInt();
info.SoftType = row["SoftType"].ToInt();
info.ColumnId = row["ColumnId"].ToInt();
info.Name = row["Name"].ToString();
info.Path = row["Path"].ToString();
info.RunPram = row["RunPram"].ToString();
info.SetJson = row["SetJson"].ToString();
info.StartPath = row["StartPath"].ToString();
info.IconPath = row["IconPath"].ToString();
VSoft.Prams.Run.Open(info, false);
}
db.Free();
}
db.Free();
#endregion
} }
db.Free();
break; break;
} }
} }
@ -391,9 +453,9 @@ namespace VSoft
/// <summary> /// <summary>
/// 显示或隐藏UI /// 显示或隐藏UI
/// </summary> /// </summary>
private void ShowOrHideUI() private void ShowOrHideUI(bool ForceShow=false)
{ {
if (this.Visible && RyForm.GetActiveWindow() == Handle) if (this.Visible && RyForm.GetActiveWindow() == Handle && !ForceShow)
{ {
this.Hide(); this.Hide();
} }
@ -619,6 +681,9 @@ namespace VSoft
IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType); IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
if (db.ConnDb(SQLConnStr) == 1) if (db.ConnDb(SQLConnStr) == 1)
{ {
hot_index++;
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
hotkey.RegHotKey(hot_index,"type_"+frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
DataSet ds = db.ReadData("select * from Columns where parentId=" + id + " order by sortindex desc limit 1"); DataSet ds = db.ReadData("select * from Columns where parentId=" + id + " order by sortindex desc limit 1");
TabList_Type.BeginUpdate(); TabList_Type.BeginUpdate();
if(ds.Tables[0].Rows.Count>0) if(ds.Tables[0].Rows.Count>0)
@ -626,6 +691,7 @@ namespace VSoft
DataRow row = ds.Tables[0].Rows[0]; DataRow row = ds.Tables[0].Rows[0];
TabList_Type.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt(); TabList_Type.Items.Add(row["Name"].ToString()).Tag = row["id"].ToInt();
} }
ds.Dispose();
TabList_Type.EndUpdate(); TabList_Type.EndUpdate();
db.Free(); db.Free();
} }
@ -658,6 +724,24 @@ namespace VSoft
if (frm.ShowDialog() == DialogResult.OK) if (frm.ShowDialog() == DialogResult.OK)
{ {
SetTypeRow(id, TabList_Type.SelectedItems[0].Index); SetTypeRow(id, TabList_Type.SelectedItems[0].Index);
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
var index = hotkey.GetHotId("type_" + frm.Op_Id);
if (index >= 0)
{
hotkey.UnHotKey(index);
if (frm.hotkeyTextBox1.HaveHotKey)
{
hotkey.RegHotKey(index, "type_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
}
else
{
if (frm.hotkeyTextBox1.HaveHotKey)
{
hot_index++;
hotkey.RegHotKey(hot_index, "type_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
}
} }
frm.Dispose(); frm.Dispose();
} }
@ -691,10 +775,15 @@ namespace VSoft
} }
} }
ds.Dispose(); ds.Dispose();
var index = hotkey.GetHotId("type_" + column_id);
if (index >= 0)
{
hotkey.UnHotKey(index);
}
db.DelById("Columns", column_id.ToString()); db.DelById("Columns", column_id.ToString());
TabList_Type.SelectedItems[0].Remove(); TabList_Type.SelectedItems[0].Remove();
db.BeginTransaction(); 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(); var id = TabList_Type.Items[i].Tag.ToInt();
RyQuickSQL mySQL = new RyQuickSQL("Columns"); RyQuickSQL mySQL = new RyQuickSQL("Columns");
@ -776,12 +865,9 @@ namespace VSoft
frm.ShowInCenter(this); frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK) if (frm.ShowDialog() == DialogResult.OK)
{ {
if(frm.hotkeyTextBox1.HaveHotKey) hot_index++;
{ HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
hotkey.UnHotKey(frm.Op_Id+00); hotkey.RegHotKey(hot_index, "soft_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
hotkey.RegHotKey(frm.Op_Id+100, hot.Modifiers_Int, hot.KeyCode);
}
LoadDb(); LoadDb();
} }
frm.Dispose(); frm.Dispose();
@ -798,15 +884,23 @@ namespace VSoft
frm.ShowInCenter(this); frm.ShowInCenter(this);
if (frm.ShowDialog() == DialogResult.OK) if (frm.ShowDialog() == DialogResult.OK)
{ {
if (frm.hotkeyTextBox1.HaveHotKey) HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey);
var index = hotkey.GetHotId("soft_" + frm.Op_Id);
if (index >= 0)
{ {
hotkey.UnHotKey(frm.Op_Id + 100); hotkey.UnHotKey(index);
HotkeyValue hot = new HotkeyValue(frm.hotkeyTextBox1.HotKey); if (frm.hotkeyTextBox1.HaveHotKey)
hotkey.RegHotKey(frm.Op_Id +100, hot.Modifiers_Int, hot.KeyCode); {
hotkey.RegHotKey(index, "soft_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
} }
else else
{ {
hotkey.UnHotKey(frm.Op_Id +100); if (frm.hotkeyTextBox1.HaveHotKey)
{
hot_index++;
hotkey.RegHotKey(hot_index, "soft_" + frm.Op_Id, hot.Modifiers_Int, hot.KeyCode);
}
} }
SetSoftRow(info.Id, IconViewEx1.SelectedItems[0].Index); SetSoftRow(info.Id, IconViewEx1.SelectedItems[0].Index);
} }
@ -829,7 +923,11 @@ namespace VSoft
{ {
RyFiles.DeleteFile(RyFiles.GetRealPath(info.IconPath)); RyFiles.DeleteFile(RyFiles.GetRealPath(info.IconPath));
} }
hotkey.UnHotKey(info.Id+100); var index = hotkey.GetHotId("soft_" + info.Id);
if (index >= 0)
{
hotkey.UnHotKey(index);
}
db.DelById("Softs", info.Id.ToString()); db.DelById("Softs", info.Id.ToString());
IconViewEx1.SelectedItems[i].Remove(); IconViewEx1.SelectedItems[i].Remove();
if (IconViewEx1.Items.Count == 0) if (IconViewEx1.Items.Count == 0)
@ -1620,5 +1718,20 @@ namespace VSoft
this.Hide(); this.Hide();
} }
} }
private ListViewItem currentItem = new ListViewItem();
private void IconViewEx1_MouseMove(object sender, MouseEventArgs e)
{
ListViewItem lvi = IconViewEx1.GetItemAt(e.X, e.Y);
if (lvi != null && lvi != currentItem)
{
currentItem = lvi;
lvTp.Show(lvi.Text, IconViewEx1, e.Location);
}
else if (lvi == null)
{
lvTp.Hide(IconViewEx1);
}
currentItem = lvi;
}
} }
} }

View File

@ -124,7 +124,7 @@
<data name="以管理员方式启动ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="以管理员方式启动ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAYRJREFUOE+NkztPwlAUx8/gakIYWFwYHB1w8FUQCEpI1KiTYpSHQVQisviYjZsJ wgAADsIBFShKgAAAAYRJREFUOE+NkztPwlAUx8/gakIYWFwYHB1w8FUQCEpI1KiTYpSHQVQisviYjZsJ
k4OJMT6ILhgTFheDiongc4AP4HdgcO/xnPZWaG81/JN/Qu49v1972wJ2iUQiQWqFiqL82yO2/w4Nuann k4OJMT6ILhgTFheDiongc4AP4HdgcO/xnPZWaG81/JN/Qu49v1972wJ2iUQiQWqFiqL82yO2/w4Nuann
DA3MrqMrWcDaSRB30uOGiPfcYrwVWuQr1HnIPxXFnsQxQvYDYeMd1Scf1Yt3hwGMz4UNEc9WBK4JsHfx DA3MrqMrWcDaSRB30uOGiPfcYrwVWuQr1HnIPxXFnsQxQvYDYeMd1Scf1Yt3hwGMz4UNEc9WBK4JsHfx
AJ0r1wibBAoYMizwolpR9D6OYOPCh5f7AU0kcF0AuU8JhsybCVYfhvXeD9kIbGBYEwILrJYHZYEzVZRg AJ0r1wibBAoYMizwolpR9D6OYOPCh5f7AU0kcF0AuU8JhsybCVYfhvXeD9kIbGBYEwILrJYHZYEzVZRg
@ -137,7 +137,7 @@
<data name="新增内置功能ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="新增内置功能ToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIpJREFUOE/tktEGxDAQRef/v6NLly5dQpfQtSXkixJJHu661R36NC/70NJhiDnH wgAADsIBFShKgAAAAIpJREFUOE/tktEGxDAQRef/v6NLly5dQpfQtSXkixJJHu661R36NC/70NJhiDnH
mImRv0SMESEELJ8F73mG9x6vacKGTS6ErbVdOudUsLiwM4s55zX5fo6jChYXjvUTUkqoteIxDCpYXLgT mImRv0SMESEELJ8F73mG9x6vacKGTS6ErbVdOudUsLiwM4s55zX5fo6jChYXjvUTUkqoteIxDCpYXLgT
BSZhKQX3vlfB4sIP4U4ci50Jb12ngsUPENcdnPsORL5USPZgYQ6cHAAAAABJRU5ErkJggg== BSZhKQX3vlfB4sIP4U4ci50Jb12ngsUPENcdnPsORL5USPZgYQ6cHAAAAABJRU5ErkJggg==
</value> </value>
@ -182,7 +182,7 @@
<data name="IconViewEx1.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="IconViewEx1.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
EwAACxMBAJqcGAAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds EQAACxEBf2RfkQAABvRJREFUeF7tnE2IHEUUxwcjIjkE1JMREnMWD7phd7uzfuBJEPSkd0+55BLQc9ds
ooIXT+bix8kgbtSYgxA1hsWLImLAPYTEXBRUNGiMEojpnpTvdWpIT2/Nm+6e7uqerv+DH0tPVfVs7/t1 ooIXT+bix8kgbtSYgxA1hsWLImLAPYTEXBRUNGiMEojpnpTvdWpIT2/Nm+6e7uqerv+DH0tPVfVs7/t1
ffTHDopEoPS9QTQ6FKrkbKjiC/TzCqFBp6CcpLk5G6h4GK7rYKD0HSaF1WL5iN4XqOR4ECU3cl8GFoAg ffTHDopEoPS9QTQ6FKrkbKjiC/TzCqFBp6CcpLk5G6h4GK7rYKD0HSaF1WL5iN4XqOR4ECU3cl8GFoAg
ii8eWNePmXQWjyWld4ZRcox2kuR3ChYPOonfeVLpu0165TgQ6d3UlWzZdgQWF+oNvufcmjTbIzyq99KZ ii8eWNePmXQWjyWld4ZRcox2kuR3ChYPOonfeVLpu0165TgQ6d3UlWzZdgQWF+oNvufcmjTbIzyq99KZ

View File

@ -180,6 +180,7 @@ namespace VSoft.Prams
mySQL.AddField("sortindex", 0); mySQL.AddField("sortindex", 0);
mySQL.AddField("depth", 0);//深度,0表示栏目,1表示分类 mySQL.AddField("depth", 0);//深度,0表示栏目,1表示分类
mySQL.AddField("parentId", 0); mySQL.AddField("parentId", 0);
mySQL.AddField("Hotkey", "");//快捷键
mySQL.AddField("Des", "");//备注 mySQL.AddField("Des", "");//备注
mySQL.AddField("editTime", DateTime.Now); mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now); mySQL.AddField("addTime", DateTime.Now);

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示: //通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.2109.0701")] [assembly: AssemblyVersion("1.0.2110.0801")]
[assembly: AssemblyFileVersion("1.0.2109.0701")] [assembly: AssemblyFileVersion("1.0.2110.0801")]

View File

@ -29,66 +29,65 @@ namespace VSoft.Skins
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMessageBox)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMessageBox));
this.lblMsg = new ryControls.LabelTx(); this.lblMsg = new ryControls.LabelTx();
this.btnCancel = new ryControls.ButtonEx(); this.btnCancel = new ryControls.ButtonEx();
this.btnYes = new ryControls.ButtonEx(); this.btnYes = new ryControls.ButtonEx();
this.SuspendLayout(); this.SuspendLayout();
// //
// lblMsg // lblMsg
// //
this.lblMsg.BackColor = System.Drawing.Color.Transparent; this.lblMsg.BackColor = System.Drawing.Color.Transparent;
this.lblMsg.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lblMsg.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMsg.LineDistance = 5; this.lblMsg.LineDistance = 5;
this.lblMsg.Location = new System.Drawing.Point(11, 39); this.lblMsg.Location = new System.Drawing.Point(11, 39);
this.lblMsg.Name = "lblMsg"; this.lblMsg.Name = "lblMsg";
this.lblMsg.Size = new System.Drawing.Size(339, 21); this.lblMsg.Size = new System.Drawing.Size(339, 21);
this.lblMsg.TabIndex = 85; this.lblMsg.TabIndex = 85;
this.lblMsg.Text = "提示"; this.lblMsg.Text = "提示";
this.lblMsg.TextChanged += new System.EventHandler(this.LblMsg_TextChanged); this.lblMsg.TextChanged += new System.EventHandler(this.LblMsg_TextChanged);
// //
// btnCancel // btnCancel
// //
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.BaseColor = System.Drawing.Color.Teal; this.btnCancel.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.btnCancel.ColorGradient = true; this.btnCancel.ColorGradient = true;
this.btnCancel.Location = new System.Drawing.Point(285, 141); this.btnCancel.Location = new System.Drawing.Point(317, 206);
this.btnCancel.Name = "btnCancel"; this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(65, 27); this.btnCancel.Size = new System.Drawing.Size(65, 27);
this.btnCancel.TabIndex = 84; this.btnCancel.TabIndex = 84;
this.btnCancel.Text = "取消"; this.btnCancel.Text = "取消";
this.btnCancel.UseVisualStyleBackColor = true; this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
// //
// btnYes // btnYes
// //
this.btnYes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnYes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnYes.BaseColor = System.Drawing.Color.Teal; this.btnYes.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(150)))), ((int)(((byte)(20)))));
this.btnYes.ColorGradient = true; this.btnYes.ColorGradient = true;
this.btnYes.Location = new System.Drawing.Point(214, 141); this.btnYes.Location = new System.Drawing.Point(246, 206);
this.btnYes.Name = "btnYes"; this.btnYes.Name = "btnYes";
this.btnYes.Size = new System.Drawing.Size(65, 27); this.btnYes.Size = new System.Drawing.Size(65, 27);
this.btnYes.TabIndex = 83; this.btnYes.TabIndex = 83;
this.btnYes.Text = "确定"; this.btnYes.Text = "确定";
this.btnYes.UseVisualStyleBackColor = true; this.btnYes.UseVisualStyleBackColor = true;
this.btnYes.Click += new System.EventHandler(this.btnYes_Click); this.btnYes.Click += new System.EventHandler(this.btnYes_Click);
// //
// FrmMessageBox // FrmMessageBox
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(355, 172); this.ClientSize = new System.Drawing.Size(387, 237);
this.Controls.Add(this.lblMsg); this.Controls.Add(this.lblMsg);
this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnYes); this.Controls.Add(this.btnYes);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false;
this.MaximizeBox = false; this.MinimizeBox = false;
this.MinimizeBox = false; this.Name = "FrmMessageBox";
this.Name = "FrmMessageBox"; this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; this.ResumeLayout(false);
this.ResumeLayout(false);
} }
#endregion #endregion

File diff suppressed because it is too large Load Diff

View File

@ -29,20 +29,21 @@ namespace VSoft.Skins
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.SuspendLayout(); this.SuspendLayout();
// //
// SKinForm // SKinForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(631, 545); this.ClientSize = new System.Drawing.Size(663, 496);
this.Location = new System.Drawing.Point(0, 0); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "SKinForm"; this.Location = new System.Drawing.Point(0, 0);
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Name = "SKinForm";
this.Text = "SKinForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Load += new System.EventHandler(this.SKinForm_Load); this.Text = "SKinForm";
this.ResumeLayout(false); this.Load += new System.EventHandler(this.SKinForm_Load);
this.ResumeLayout(false);
} }
#endregion #endregion

View File

@ -1,120 +1,120 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
--> -->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
</root> </root>