### 2024-12-20 星期五更新

------
#### SuperDesign    V3.0.2412.2001
- *.[新增]新增程序更新日志设置和自动发布功能。
- *.[修复]修复Post数据格式不正确时双击文本框会导致软件闪退的BUG。
This commit is contained in:
紫林软件 2024-12-20 08:14:33 +08:00
parent 03bcb8c5fd
commit 993f1ca1a9
349 changed files with 81977 additions and 13873 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

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

View File

@ -0,0 +1,67 @@
[Settings]
; game appid here
AppID = 739630
; source steam_api.dll version
API = 5.69.73.98
; player name
PlayerName = VALVE
; game Language
;english german french italian koreana
;spanish schinese tchinese russian thai
;japanese portuguese polish danish dutch
;finnish norwegian swedish hungarian czech
;romanian turkish
Language = schinese
;save types:
; VALVE(game dir) 0
; VALVE(my documents) 1
; RELOADED 4
; SKIDROW 5
; FLT 6
; CODEX(3.0.4+/my documents) 7
; CODEX(1.0.0.0+/APPDATA) 8
SaveType = 0
;Achievements Count limit
;AchievementsCount=0
;game exe path
;GameEXE=game.exe
;SteamUserID =12345678
;SteamUserIDH =12345678
;IsLoggedOn=0
;Online=0
;UnLockListedDLCOnly=1
[DLC]
;SET DLC USE "APPID=NAME"
[Option]
;Block Network.
;FullBlockNetwork=1
;Redirect File Handle to ".valve"
;FileRedirectCheck=1
;DECRYPT STEAM STUB
;set 1 tells steam_api.dll / steam_api64.dll to decrypt the steam stub as soon as possible
;set 2 tells SteamClient.dll / SteamClient64.dll to decrypt the steam stub as soon as possible
;set 0 to disable it.
;DECRYPT_STEAM_STUB=0

Binary file not shown.

View File

@ -162,3 +162,12 @@ mb_convert_encoding
mb_detect_encoding
file_put_contents
file_get_contents
continue
exit
htmlspecialchars
htmlentities
quoted_printable_decode
rawurldecode
rawurlencode
print
printf

View File

@ -1,3 +1,2 @@
VS2019项目目录|E:\SysDoc\Documents\Visual Studio 2019\Projects\
程序开发源码|E:\我的代码\毕方项目\C#
程序开发源码|E:\My Datas\毕方项目\C#
程序开发源码|E:\My Datas\My Codes\毕方项目\CSharp

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Buffers</name>
</assembly>
<members>
<member name="T:System.Buffers.ArrayPool`1">
<summary>Provides a resource pool that enables reusing instances of type <see cref="T[]"></see>.</summary>
<typeparam name="T">The type of the objects that are in the resource pool.</typeparam>
</member>
<member name="M:System.Buffers.ArrayPool`1.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class using the specifed configuration.</summary>
<param name="maxArrayLength">The maximum length of an array instance that may be stored in the pool.</param>
<param name="maxArraysPerBucket">The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.</param>
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class with the specified configuration.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
<summary>Retrieves a buffer that is at least the requested length.</summary>
<param name="minimumLength">The minimum length of the array.</param>
<returns>An array of type <see cref="T[]"></see> that is at least <paramref name="minimumLength">minimumLength</paramref> in length.</returns>
</member>
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
<summary>Returns an array to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method on the same <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<param name="array">A buffer to return to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method.</param>
<param name="clearArray">Indicates whether the contents of the buffer should be cleared before reuse. If <paramref name="clearArray">clearArray</paramref> is set to true, and if the pool will store the buffer to enable subsequent reuse, the <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"></see> method will clear the <paramref name="array">array</paramref> of its contents so that a subsequent caller using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method will not see the content of the previous caller. If <paramref name="clearArray">clearArray</paramref> is set to false or if the pool will release the buffer, the array&amp;#39;s contents are left unchanged.</param>
</member>
<member name="P:System.Buffers.ArrayPool`1.Shared">
<summary>Gets a shared <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
<returns>A shared <see cref="System.Buffers.ArrayPool`1"></see> instance.</returns>
</member>
</members>
</doc>

Binary file not shown.

View File

@ -0,0 +1,355 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Memory</name>
</assembly>
<members>
<member name="T:System.Span`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.Span`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.Span`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.Span`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.Span`1.Clear">
</member>
<member name="M:System.Span`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.Span`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.Span`1.Empty">
<returns></returns>
</member>
<member name="M:System.Span`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Fill(`0)">
<param name="value"></param>
</member>
<member name="M:System.Span`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.Span`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.Span`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.Span`1.Length">
<returns></returns>
</member>
<member name="M:System.Span`1.op_Equality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.ArraySegment{T})~System.Span{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(System.Span{T})~System.ReadOnlySpan{T}">
<param name="span"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Implicit(T[])~System.Span{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.op_Inequality(System.Span{`0},System.Span{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.Span`1.ToArray">
<returns></returns>
</member>
<member name="M:System.Span`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
<member name="T:System.SpanExtensions">
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsBytes``1(System.Span{``0})">
<param name="source"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan(System.String)">
<param name="text"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(System.ArraySegment{``0})">
<param name="arraySegment"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.AsSpan``1(``0[])">
<param name="array"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.CopyTo``1(``0[],System.Span{``0})">
<param name="array"></param>
<param name="destination"></param>
<typeparam name="T"></typeparam>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.Byte)">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},``0)">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<param name="value2"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="values"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte)">
<param name="span"></param>
<param name="value0"></param>
<param name="value1"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.ReadOnlySpan{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.NonPortableCast``2(System.Span{``0})">
<param name="source"></param>
<typeparam name="TFrom"></typeparam>
<typeparam name="TTo"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="first"></param>
<param name="second"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.SequenceEqual``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="first"></param>
<param name="second"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
<param name="span"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:System.SpanExtensions.StartsWith``1(System.Span{``0},System.ReadOnlySpan{``0})">
<param name="span"></param>
<param name="value"></param>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="T:System.ReadOnlySpan`1">
<typeparam name="T"></typeparam>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[])">
<param name="array"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(System.Void*,System.Int32)">
<param name="pointer"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32)">
<param name="array"></param>
<param name="start"></param>
</member>
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32,System.Int32)">
<param name="array"></param>
<param name="start"></param>
<param name="length"></param>
</member>
<member name="M:System.ReadOnlySpan`1.CopyTo(System.Span{`0})">
<param name="destination"></param>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousCreate(System.Object,`0@,System.Int32)">
<param name="obj"></param>
<param name="objectData"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.DangerousGetPinnableReference">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Empty">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Equals(System.Object)">
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.GetHashCode">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.IsEmpty">
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Item(System.Int32)">
<param name="index"></param>
<returns></returns>
</member>
<member name="P:System.ReadOnlySpan`1.Length">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Equality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(System.ArraySegment{T})~System.ReadOnlySpan{T}">
<param name="arraySegment"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Implicit(T[])~System.ReadOnlySpan{T}">
<param name="array"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.op_Inequality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
<param name="left"></param>
<param name="right"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32)">
<param name="start"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32,System.Int32)">
<param name="start"></param>
<param name="length"></param>
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.ToArray">
<returns></returns>
</member>
<member name="M:System.ReadOnlySpan`1.TryCopyTo(System.Span{`0})">
<param name="destination"></param>
<returns></returns>
</member>
</members>
</doc>

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Threading.Tasks.Extensions</name>
</assembly>
<members>
<member name="T:System.Runtime.CompilerServices.ValueTaskAwaiter`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult">
<returns></returns>
</member>
<member name="P:System.Runtime.CompilerServices.ValueTaskAwaiter`1.IsCompleted">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.OnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="M:System.Runtime.CompilerServices.ValueTaskAwaiter`1.UnsafeOnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="T:System.Threading.Tasks.ValueTask`1">
<summary>Provides a value type that wraps a <see cref="Task{TResult}"></see> and a <typeparamref name="TResult">TResult</typeparamref>, only one of which is used.</summary>
<typeparam name="TResult">The result.</typeparam>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(System.Threading.Tasks.Task{`0})">
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied task that represents the operation.</summary>
<param name="task">The task.</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="task">task</paramref> argument is null.</exception>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.#ctor(`0)">
<summary>Initializes a new instance of the <see cref="ValueTask{TResult}"></see> class using the supplied result of a successful operation.</summary>
<param name="result">The result.</param>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.AsTask">
<summary>Retrieves a <see cref="Task{TResult}"></see> object that represents this <see cref="ValueTask{TResult}"></see>.</summary>
<returns>The <see cref="Task{TResult}"></see> object that is wrapped in this <see cref="ValueTask{TResult}"></see> if one exists, or a new <see cref="Task{TResult}"></see> object that represents the result.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.ConfigureAwait(System.Boolean)">
<summary>Configures an awaiter for this value.</summary>
<param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the captured context; otherwise, false.</param>
<returns>The configured awaiter.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.CreateAsyncMethodBuilder">
<summary>Creates a method builder for use with an async method.</summary>
<returns>The created builder.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Object)">
<summary>Determines whether the specified object is equal to the current object.</summary>
<param name="obj">The object to compare with the current object.</param>
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.Equals(System.Threading.Tasks.ValueTask{`0})">
<summary>Determines whether the specified <see cref="ValueTask{TResult}"></see> object is equal to the current <see cref="ValueTask{TResult}"></see> object.</summary>
<param name="other">The object to compare with the current object.</param>
<returns>true if the specified object is equal to the current object; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.GetAwaiter">
<summary>Creates an awaiter for this value.</summary>
<returns>The awaiter.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.GetHashCode">
<summary>Returns the hash code for this instance.</summary>
<returns>The hash code for the current object.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCanceled">
<summary>Gets a value that indicates whether this object represents a canceled operation.</summary>
<returns>true if this object represents a canceled operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompleted">
<summary>Gets a value that indicates whether this object represents a completed operation.</summary>
<returns>true if this object represents a completed operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsCompletedSuccessfully">
<summary>Gets a value that indicates whether this object represents a successfully completed operation.</summary>
<returns>true if this object represents a successfully completed operation; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.IsFaulted">
<summary>Gets a value that indicates whether this object represents a failed operation.</summary>
<returns>true if this object represents a failed operation; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.op_Equality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
<summary>Compares two values for equality.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The second value to compare.</param>
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are equal; otherwise, false.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.op_Inequality(System.Threading.Tasks.ValueTask{`0},System.Threading.Tasks.ValueTask{`0})">
<summary>Determines whether two <see cref="ValueTask{TResult}"></see> values are unequal.</summary>
<param name="left">The first value to compare.</param>
<param name="right">The seconed value to compare.</param>
<returns>true if the two <see cref="ValueTask{TResult}"></see> values are not equal; otherwise, false.</returns>
</member>
<member name="P:System.Threading.Tasks.ValueTask`1.Result">
<summary>Gets the result.</summary>
<returns>The result.</returns>
</member>
<member name="M:System.Threading.Tasks.ValueTask`1.ToString">
<summary>Returns a string that represents the current object.</summary>
<returns>A string that represents the current object.</returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute">
</member>
<member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.#ctor(System.Type)">
<param name="builderType"></param>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.BuilderType">
<returns></returns>
</member>
<member name="T:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitOnCompleted``2(``0@,``1@)">
<param name="awaiter"></param>
<param name="stateMachine"></param>
<typeparam name="TAwaiter"></typeparam>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted``2(``0@,``1@)">
<param name="awaiter"></param>
<param name="stateMachine"></param>
<typeparam name="TAwaiter"></typeparam>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Create">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetException(System.Exception)">
<param name="exception"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetResult(`0)">
<param name="result"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
<param name="stateMachine"></param>
</member>
<member name="M:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Start``1(``0@)">
<param name="stateMachine"></param>
<typeparam name="TStateMachine"></typeparam>
</member>
<member name="P:System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1.Task">
<returns></returns>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult">
<returns></returns>
</member>
<member name="P:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.IsCompleted">
<returns></returns>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.OnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.UnsafeOnCompleted(System.Action)">
<param name="continuation"></param>
</member>
<member name="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1">
<typeparam name="TResult"></typeparam>
</member>
<member name="M:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.GetAwaiter">
<returns></returns>
</member>
</members>
</doc>

View File

@ -1,9 +1,9 @@
[FileFind]
Exts=*.cs;*.sln;*.csproj
Exts=PHP文件(*.php;*.html;*.js;*.css;*.htm)
SkipDirName_On=1
SkipDirName_Text=debug;.git
SearchSubDir=1
IgnoreBinExt=1
SearchHiddenDir=0
SearchHiddenDir=1
LimitFileSize_On=1
LimitFileSize_Value=20

Binary file not shown.

View File

@ -0,0 +1,10 @@
\r\n
\n
private class SortByDisplayOrder
WOL2
WOL
开机
port
fun
京东
支付宝

View File

@ -0,0 +1,6 @@
,
WOL
WOL2
ss2
ss
2

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,374 @@
[Configuration]
JumpList=S193@192.168.1.195
[Configuration\Interface\Updates]
DotNetVersion=5.13.4
Period=0
LastCheck=000000000000F03F
HaveResults=0
ShownResults=0
BetaVersions=2
ShowOnStartup=1
AuthenticationEmail=
ConnectionType=1
ProxyHost=
ProxyPort=8080
ForVersion=0
Version=0
Message=
Critical=0
Release=
Disabled=0
Url=
UrlButton=
NewsUrl=
NewsWidth=0
NewsHeight=0
DownloadUrl=
DownloadSize=0
DownloadSha256=
AuthenticationError=
OpenGettingStarted=0
DownloadingUrl=
TipsWidth=0
TipsHeight=0
TipsUrl=
Tips=
TipsIntervalDays=7
TipsIntervalRuns=5
ConsoleVersion=
[Configuration\Interface]
RandomSeedFile=%25APPDATA%25%5Cwinscp.rnd
PuttyRegistryStorageKey=Software%5CSimonTatham%5CPuTTY
ConfirmOverwriting=1
ConfirmResume=1
AutoReadDirectoryAfterOp=1
SessionReopenAuto=5000
SessionReopenBackground=2000
SessionReopenTimeout=0
SessionReopenAutoStall=60000
TunnelLocalPortNumberLow=50000
TunnelLocalPortNumberHigh=50099
CacheDirectoryChangesMaxSize=100
ShowFtpWelcomeMessage=0
ExternalIpAddress=
LocalPortNumberMin=0
LocalPortNumberMax=0
TryFtpWhenSshFails=1
ParallelDurationThreshold=10
MimeTypes=
DontReloadMoreThanSessions=1000
ScriptProgressFileNameLimit=25
KeyVersion=0
CollectUsage=0
CertificateStorage=
ExperimentalFeatures=0
ContinueOnError=0
ConfirmCommandSession=1
SynchronizeParams=66
SynchronizeOptions=5
SynchronizeModeAuto=-1
SynchronizeMode=0
MaxWatchDirectories=500
QueueTransfersLimit=2
QueueBootstrap=0
QueueKeepDoneItems=1
QueueKeepDoneItemsFor=15
QueueAutoPopup=1
QueueRememberPassword=1
PuttySession=WinSCP%20temporary%20session
PuttyPath=%25ProgramFiles%25%5CPuTTY%5Cputty.exe
PuttyPassword=0
TelnetForFtpInPutty=1
IgnoreCancelBeforeFinish=DFBC9A785634023F
BeepOnFinish=0
BeepOnFinishAfter=176CC1166CC1363F
BeepSound=SystemDefault
KeepUpToDateChangeDelay=500
ChecksumAlg=sha1
SessionReopenAutoIdle=9000
Interface=0
ConfirmExitOnCompletion=1
SynchronizeSummary=1
SessionColors=
FontColors=
CopyShortCutHintShown=0
HttpForWebDAV=0
DefaultFixedWidthFontName=
DefaultFixedWidthFontSize=0
CopyOnDoubleClick=2
CopyOnDoubleClickConfirmation=0
DDDisableMove=0
DDTransferConfirmation2=2
DDTemporaryDirectory=
DDDrives=
DDWarnLackOfTempSpace=1
DDWarnLackOfTempSpaceRatio=9A9999999999F13F
DeleteToRecycleBin=1
DimmHiddenFiles=1
RenameWholeName=0
SelectDirectories=0
SelectMask=*.*
ShowHiddenFiles=0
FormatSizeBytes=1
PanelSearch=0
ShowInaccesibleDirectories=1
ConfirmTransferring=1
ConfirmDeleting=1
ConfirmRecycling=1
ConfirmClosingSession=1
AutoStartSession=
UseLocationProfiles=0
UseSharedBookmarks=0
LocaleSafe=0
DDFakeFile=1
DDExtTimeout=1000
DefaultDirIsHome=1
TemporaryDirectoryAppendSession=0
TemporaryDirectoryAppendPath=1
TemporaryDirectoryDeterministic=0
TemporaryDirectoryCleanup=1
ConfirmTemporaryDirectoryCleanup=1
PreservePanelState=1
DarkTheme=2
LastStoredSession=
AutoSaveWorkspace=0
AutoSaveWorkspacePasswords=0
AutoWorkspace=
PathInCaption=0
SessionTabNameFormat=2
MinimizeToTray=0
BalloonNotifications=1
NotificationsTimeout=10
NotificationsStickTime=2
CopyParamAutoSelectNotice=1
LockToolbars=0
SelectiveToolbarText=1
AutoOpenInPutty=0
RefreshRemotePanel=0
RefreshRemotePanelInterval=176CC1166CC1463F
PanelFontName=
PanelFontSize=0
PanelFontStyle=0
PanelFontCharset=1
NaturalOrderNumericalSorting=1
FullRowSelect=0
OfferedEditorAutoConfig=1
LastMonitor=0
VersionHistory=521070000,stable
EnableQueueByDefault=1
OpenedStoredSessionFolders=
AutoImportedFromPuttyOrFilezilla=0
GenerateUrlComponents=-1
GenerateUrlCodeTarget=0
GenerateUrlScriptFormat=0
GenerateUrlAssemblyLanguage=0
ExternalSessionInExistingInstance=1
ShowLoginWhenNoSession=1
KeepOpenWhenNoSession=1
LocalIconsByExt=0
FlashTaskbar=1
MaxSessions=100
BidiModeOverride=0
FlipChildrenOverride=0
ShowTips=1
TipsSeen=
TipsShown=AEAE1DB794F7E540
FileColors=
RunsSinceLastTip=7
HonorDrivePolicy=1
UseABDrives=1
LastMachineInstallations=0
ExtensionsDeleted=
ExtensionsOrder=
ExtensionsShortCuts=
TimeoutShellOperations=1
TimeoutShellIconRetrieval=0
UseIconUpdateThread=1
AllowWindowPrint=0
StoreTransition=1
FirstRun=2023-03-03
[Configuration\Logging]
Logging=0
LogFileName=%25TEMP%25%5C!S.log
LogFileAppend=1
LogSensitive=0
LogMaxSize=0
LogMaxCount=0
LogProtocol=0
LogActions=0
ActionsLogFileName=%25TEMP%25%5C!S.xml
[Configuration\Interface\CopyParam]
AddXToDirectories=1
Masks=*.*html;%20*.htm;%20*.txt;%20*.php;%20*.php3;%20*.cgi;%20*.c;%20*.cpp;%20*.h;%20*.pas;%20*.bas;%20*.tex;%20*.pl;%20*.js;%20.htaccess;%20*.xtml;%20*.css;%20*.cfg;%20*.ini;%20*.sh;%20*.xml
FileNameCase=0
PreserveReadOnly=0
PreserveTime=1
PreserveTimeDirs=0
PreserveRights=0
IgnorePermErrors=0
Text=rw-r--r--
TransferMode=0
ResumeSupport=1
ResumeThreshold=102400
ReplaceInvalidChars=1
LocalInvalidChars=/%5C:*%3F"<>|
CalculateSize=1
IncludeFileMask=
ClearArchive=0
RemoveCtrlZ=0
RemoveBOM=0
CPSLimit=0
NewerOnly=0
EncryptNewFiles=1
ExcludeHiddenFiles=0
ExcludeEmptyDirectories=0
Queue=0
QueueNoConfirmation=1
QueueParallel=1
CopyParamList=-1
[Configuration\Interface\NewDirectory2]
Valid=00
[Configuration\Interface\SynchronizeChecklist]
WindowParams=0;-1;-1;1090;700;0;96
ListParams=1;1|150,1;100,1;80,1;130,1;25,1;100,1;80,1;130,1;@96|0;1;2;3;4;5;6;7
[Configuration\Interface\FindFile]
WindowParams=646,481,96
ListParams=1;1|125,1;181,1;80,1;122,1;@96|0;1;2;3|/1
[Configuration\Interface\ConsoleWin]
WindowSize=570,430,96
[Configuration\Interface\LoginDialog]
WindowSize=640,430,96
SiteSearch=1
[Configuration\Interface\Editor]
FontName2=Consolas
FontSize=11
FontStyle=0
FontCharset=1
FontColor=0
BackgroundColor=0
WordWrap=0
FindText=
ReplaceText=
FindMatchCase=0
FindWholeWord=0
FindDown=1
TabSize=8
MaxEditors=500
EarlyClose=2
SDIShellEditor=0
WindowParams=730;382;1820;1082;0;96
Encoding=0
WarnOnEncodingFallback=1
WarnOrLargeFileSize=1
[Configuration\Interface\QueueView]
Height=140
HeightPixelsPerInch=96
Layout=70,250,250,80,80,80,100,;96
Show=1
LastHideShow=1
ToolBar=1
Label=1
FileList=0
FileListHeight=90
FileListHeightPixelsPerInch=96
[Configuration\Interface\Explorer]
ToolbarsLayout2=Queue=1::0+-1,Menu=1:TopDock:0+0,Buttons=1:TopDock:2+0,Selection=0:TopDock:3+0,Session=0:TopDock:6+0,Preferences=1:TopDock:4+0,Sort=0:TopDock:5+0,Address=1:TopDock:1+0,Updates=1:TopDock:4+416,Transfer=1:TopDock:4+194,CustomCommands=0:TopDock:7+0,PixelsPerInch=96
ToolbarsButtons=
DirViewParams=0;1;0|150,1;70,1;150,1;79,1;62,1;55,0;20,0;150,0;125,0;@96|6;7;8;0;1;2;3;4;5
LastLocalTargetDirectory=C:%5CUsers%5Czilin%5CDocuments
SessionsTabs=1
StatusBar=1
WindowParams=-1;-1;960;720;0;96
ViewStyle=0
ShowFullAddress=1
DriveView=1
DriveViewWidth=180
DriveViewWidthPixelsPerInch=96
[Configuration\Interface\Commander]
ToolbarsLayout2=Queue=1::0+-1,Menu=1:TopDock:0+0,Preferences=1:TopDock:1+228,Session=0:TopDock:1+602,Sort=0:TopDock:2+0,Commands=1:TopDock:1+0,Updates=1:TopDock:1+619,Transfer=1:TopDock:1+364,CustomCommands=0:TopDock:3+0,RemoteHistory=1:RemoteTopDock:0+172,RemoteNavigation=1:RemoteTopDock:0+252,RemotePath=1:RemoteTopDock:0+0,RemoteFile=1:RemoteTopDock:1+0,RemoteSelection=1:RemoteTopDock:1+345,LocalHistory=1:LocalTopDock:0+207,LocalNavigation=1:LocalTopDock:0+287,LocalPath=1:LocalTopDock:0+0,LocalFile=1:LocalTopDock:1+0,LocalSelection=1:LocalTopDock:1+329,Toolbar2=0:BottomDock:1+0,CommandLine=0:BottomDock:0+0,PixelsPerInch=96
ToolbarsButtons=Reconnect=ReconnectSession:0
CurrentPanel=0
LocalPanelWidth=000000000000E03F
SwappedPanels=0
SessionsTabs=1
StatusBar=1
WindowParams=-426;807;664;1507;0;96
ExplorerStyleSelection=2
PreserveLocalDirectory=0
CompareByTime=1
CompareBySize=0
TreeOnLeft=0
ExplorerKeyboardShortcuts=0
SystemContextMenu=0
[Configuration\Interface\Commander\LocalPanel]
DirViewParams=0;1|150,1;70,1;120,1;150,1;55,0;55,0;@96|5;4;0;1;2;3
StatusBar=1
DriveView=1
DriveViewHeight=100
DriveViewHeightPixelsPerInch=96
DriveViewWidth=100
DriveViewWidthPixelsPerInch=96
LastPath=E:
[Configuration\Interface\Commander\RemotePanel]
DirViewParams=0;1|150,1;70,1;150,1;79,1;62,1;55,0;20,0;150,0;125,0;@96|6;7;8;5;0;1;2;3;4
StatusBar=1
DriveView=0
DriveViewHeight=100
DriveViewHeightPixelsPerInch=96
DriveViewWidth=100
DriveViewWidthPixelsPerInch=96
LastPath=
[Configuration\Security]
UseMasterPassword=0
MasterPasswordVerifier=
[Configuration\Interface\Editor\0]
FileMask=*.*
Editor=0
ExternalEditor=
ExternalEditorText=1
SDIExternalEditor=1
DetectMDIExternalEditor=0
[Configuration\Interface\Editor\1]
FileMask=*.*
Editor=1
ExternalEditor=notepad.exe
ExternalEditorText=1
SDIExternalEditor=1
DetectMDIExternalEditor=0
[Sessions\S193@192.168.1.195]
HostName=192.168.1.195
PortNumber=2126
UserName=S195
FSProtocol=5
Password=A35C4B5C0F6D65696D656E726D6A64726D726D65696D6E6F68696A0B837B8A347411861AC18E0FEC8FB0B574DE4AB61072E0
Ftps=3
LocalDirectory=E:%5C
RemoteDirectory=/
[FtpsCertificates]
192.168.1.195:2125=58:f4:a3:38:79:83:49:24:1d:8a:e1:53:d7:91:fd:52:f3:31:ba:34:e4:bb:75:53:61:8d:97:cd:42:34:52:24;12
192.168.1.195:2126=58:f4:a3:38:79:83:49:24:1d:8a:e1:53:d7:91:fd:52:f3:31:ba:34:e4:bb:75:53:61:8d:97:cd:42:34:52:24;12
[Configuration\LastFingerprints]
192.168.1.195:2125:tls=58:f4:a3:38:79:83:49:24:1d:8a:e1:53:d7:91:fd:52:f3:31:ba:34:e4:bb:75:53:61:8d:97:cd:42:34:52:24
192.168.1.195:2126:tls=58:f4:a3:38:79:83:49:24:1d:8a:e1:53:d7:91:fd:52:f3:31:ba:34:e4:bb:75:53:61:8d:97:cd:42:34:52:24

View File

@ -0,0 +1,2 @@
Scintilla 5.4.1
Lexilla 5.3.0

View File

@ -0,0 +1,2 @@
Scintilla 5.4.1
Lexilla 5.3.0

Binary file not shown.

View File

@ -0,0 +1,22 @@
body {
background: url("images/bg.jpg?v20200831") repeat
}
body header {
background: url("images/bg-title.png?v20200831") no - repeat center;
background - size: 1920px auto
}
body header.container {
height: 100px; - webkit - box - sizing: border - box;
box - sizing: border - box
}
body header div.title - box.title - blog a {
color: #333}body header div.title-box .title-blog a:hover{color:# 666
}
body header div.title - box.description {
color: #666}aside div.aside-box h3.aside-title{color:# 3d3d3d;
background - color: #f5f5f5;
background - size: 300px 38px;
padding: 0 16px;
height : 38px;
line - height: 38px
}

View File

@ -1,5 +1,21 @@
### 2023-02-21更新
### 2024-12-20 星期五更新
------
#### SuperDesign V3.0.2412.2001
- *.[新增]新增程序更新日志设置和自动发布功能。
- *.[修复]修复Post数据格式不正确时双击文本框会导致软件闪退的BUG。
### 2024-02-22更新
-------
#### RySmartEditor V3.0.2402.2201
- *.[修复]修复文件查找功能,双击找到的内容,定位内容时可能被滚动条遮挡的问题。
- *.[修复]修复文件查找功能,已找到列表高亮显示不正确的BUG。
- *.[修复]点开查找功能,有时不能搜索当前目录的BUG。
- *.[修复]修复查找文件时使用内置的文件类型不能搜索的BUG。
#### SuperDesign V3.0.2402.2201
- *.[新增]全新的Json编辑器,支持在网页抓取工具中编辑Json的值。
### 2023-02-21更新
-------
#### SuperDesign V3.0.2302.2101
- *.[新增]全新文本编辑器,支持高亮、FTP查看和编辑、目录浏览历史版本等众多功能。

224
Source/.log Normal file
View File

@ -0,0 +1,224 @@
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 536870912 bytes for G1 virtual space
# Possible reasons:
# The system is out of physical RAM or swap space
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# JVM is running with Zero Based Compressed Oops mode in which the Java heap is
# placed in the first 32GB address space. The Java Heap base address is the
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress
# to set the Java Heap base and to place the Java Heap above 32GB virtual address.
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_windows.cpp:3617), pid=42876, tid=52332
#
# JRE version: (17.0.8.1+1) (build )
# Java VM: OpenJDK 64-Bit Server VM (17.0.8.1+1-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
--------------- S U M M A R Y ------------
Command Line:
Host: Intel(R) Core(TM) i7-10700F CPU @ 2.90GHz, 16 cores, 31G, Windows 11 , 64 bit Build 22621 (10.0.22621.3958)
Time: Fri Sep 6 16:43:48 2024 Windows 11 , 64 bit Build 22621 (10.0.22621.3958) elapsed time: 0.159681 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x000001c96629bbd0): JavaThread "Unknown thread" [_thread_in_vm, id=52332, stack(0x000000a988100000,0x000000a988200000)]
Stack: [0x000000a988100000,0x000000a988200000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x67bf3a]
V [jvm.dll+0x83a024]
V [jvm.dll+0x83b7ce]
V [jvm.dll+0x83be33]
V [jvm.dll+0x24785f]
V [jvm.dll+0x678cb9]
V [jvm.dll+0x66d54a]
V [jvm.dll+0x308feb]
V [jvm.dll+0x310496]
V [jvm.dll+0x36019e]
V [jvm.dll+0x3603cf]
V [jvm.dll+0x2dff38]
V [jvm.dll+0x2e0ea4]
V [jvm.dll+0x80bca1]
V [jvm.dll+0x36df61]
V [jvm.dll+0x7eafac]
V [jvm.dll+0x3f0c8f]
V [jvm.dll+0x3f28a1]
C [jli.dll+0x528f]
C [ucrtbase.dll+0x29333]
C [KERNEL32.DLL+0x1257d]
C [ntdll.dll+0x5af28]
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x00007fff25743058, length=0, elements={
}
Java Threads: ( => current thread )
Other Threads:
0x000001c966348c10 GCTaskThread "GC Thread#0" [stack: 0x000000a988200000,0x000000a988300000] [id=52740]
0x000001c97f5fc780 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000a988300000,0x000000a988400000] [id=13960]
0x000001c96634dd70 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000a988400000,0x000000a988500000] [id=52328]
[error occurred during error reporting (printing all threads), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff24f00927]
VM state: not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x000001c966297310] Heap_lock - owner thread: 0x000001c96629bbd0
Heap address: 0x0000000602000000, size: 8160 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
CDS archive(s) mapped at: [0x0000000000000000-0x0000000000000000-0x0000000000000000), size 0, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 1.
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0, Narrow klass range: 0x0
GC Precious Log:
<Empty>
Heap:
garbage-first heap total 0K, used 0K [0x0000000602000000, 0x0000000800000000)
region size 4096K, 0 young (0K), 0 survivors (0K)
[error occurred during error reporting (printing heap information), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff252e5fc9]
GC Heap History (0 events):
No events
Dll operation events (1 events):
Event: 0.112 Loaded shared library D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\java.dll
Deoptimization events (0 events):
No events
Classes unloaded (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
VM Operations (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
0x00007ff7a7e60000 - 0x00007ff7a7e6e000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\java.exe
0x00007ff8b9bd0000 - 0x00007ff8b9de7000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ff8b7960000 - 0x00007ff8b7a24000 C:\Windows\System32\KERNEL32.DLL
0x00007ff8b7520000 - 0x00007ff8b78cd000 C:\Windows\System32\KERNELBASE.dll
0x00007ff8b7210000 - 0x00007ff8b7321000 C:\Windows\System32\ucrtbase.dll
0x00007ff86fc20000 - 0x00007ff86fc3b000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\VCRUNTIME140.dll
0x00007ff86d490000 - 0x00007ff86d4a7000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\jli.dll
0x00007ff8b9830000 - 0x00007ff8b99de000 C:\Windows\System32\USER32.dll
0x00007ff8b78d0000 - 0x00007ff8b78f6000 C:\Windows\System32\win32u.dll
0x00007ff8a4950000 - 0x00007ff8a4be3000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3672_none_2713b9d173822955\COMCTL32.dll
0x00007ff8b9310000 - 0x00007ff8b9339000 C:\Windows\System32\GDI32.dll
0x00007ff8b99e0000 - 0x00007ff8b9a87000 C:\Windows\System32\msvcrt.dll
0x00007ff8b73d0000 - 0x00007ff8b74e9000 C:\Windows\System32\gdi32full.dll
0x00007ff8b7330000 - 0x00007ff8b73ca000 C:\Windows\System32\msvcp_win.dll
0x00007ff8b7eb0000 - 0x00007ff8b7ee1000 C:\Windows\System32\IMM32.DLL
0x00007ff86d480000 - 0x00007ff86d48c000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\vcruntime140_1.dll
0x00007fffde290000 - 0x00007fffde31d000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\msvcp140.dll
0x00007fff24c10000 - 0x00007fff25875000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\server\jvm.dll
0x00007ff8b7b50000 - 0x00007ff8b7c02000 C:\Windows\System32\ADVAPI32.dll
0x00007ff8b90a0000 - 0x00007ff8b9149000 C:\Windows\System32\sechost.dll
0x00007ff8b74f0000 - 0x00007ff8b7518000 C:\Windows\System32\bcrypt.dll
0x00007ff8b83e0000 - 0x00007ff8b84f4000 C:\Windows\System32\RPCRT4.dll
0x00007ff8b6c10000 - 0x00007ff8b6c5d000 C:\Windows\SYSTEM32\POWRPROF.dll
0x00007ff8970b0000 - 0x00007ff8970b9000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ff8a3190000 - 0x00007ff8a31c4000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ff8b8fd0000 - 0x00007ff8b9041000 C:\Windows\System32\WS2_32.dll
0x00007ff8b1e70000 - 0x00007ff8b1e7a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ff8b6bf0000 - 0x00007ff8b6c03000 C:\Windows\SYSTEM32\UMPDC.dll
0x00007ff8b5f40000 - 0x00007ff8b5f58000 C:\Windows\SYSTEM32\kernel.appcore.dll
0x00007ff81c320000 - 0x00007ff81c32a000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\jimage.dll
0x00007ff8b4750000 - 0x00007ff8b4982000 C:\Windows\SYSTEM32\DBGHELP.DLL
0x00007ff8b9340000 - 0x00007ff8b96ce000 C:\Windows\System32\combase.dll
0x00007ff8b7dd0000 - 0x00007ff8b7ea7000 C:\Windows\System32\OLEAUT32.dll
0x00007ff8a3290000 - 0x00007ff8a32c2000 C:\Windows\SYSTEM32\dbgcore.DLL
0x00007ff8b6f60000 - 0x00007ff8b6fdb000 C:\Windows\System32\bcryptPrimitives.dll
0x00007fffde260000 - 0x00007fffde285000 D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\java.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.3672_none_2713b9d173822955;D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin\server
VM Arguments:
java_command: <unknown>
java_class_path (initial): <not set>
Launcher Type: SUN_STANDARD
[Global flags]
intx CICompilerCount = 12 {product} {ergonomic}
uint ConcGCThreads = 3 {product} {ergonomic}
uint G1ConcRefinementThreads = 13 {product} {ergonomic}
size_t G1HeapRegionSize = 4194304 {product} {ergonomic}
uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
size_t InitialHeapSize = 536870912 {product} {ergonomic}
size_t MarkStackSize = 4194304 {product} {ergonomic}
size_t MaxHeapSize = 8556380160 {product} {ergonomic}
size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic}
size_t MinHeapSize = 8388608 {product} {ergonomic}
uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic}
uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
bool SegmentedCodeCache = true {product} {ergonomic}
size_t SoftMaxHeapSize = 8556380160 {manageable} {ergonomic}
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
bool UseCompressedOops = true {product lp64_product} {ergonomic}
bool UseG1GC = true {product} {ergonomic}
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic}
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
PATH=D:\Android\openjdk\jdk-17.0.8.101-hotspot\bin;E:\ZenDas\ZenTao\bin\sliksvn;E:\ZenDas\ZenTao\zbox\nssm\win64;D:\Program Files (x86)\VMware\VMware Workstation\bin\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;D:\Program Files (x86)\AOMEI\AOMEI Backupper\7.3.2;d:\Program Files (x86)\AOMEI\AOMEI Backupper\7.3.3;C:\Program Files\dotnet\;C:\Program Files\Git\cmd;D:\Program Files\TortoiseGit\bin;C:\Users\Àî·ïöÎ\AppData\Local\Microsoft\WindowsApps;C:\Users\Àî·ïöÎ\.dotnet\tools;C:\Users\Àî·ïöÎ\AppData\Local\Microsoft\WindowsApps;C:\Users\Àî·ïöÎ\.dotnet\tools
USERNAME=Àî·ïöÎ
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 165 Stepping 5, GenuineIntel
TMP=C:\Users\Àî·ïöÎ\AppData\Local\Temp
TEMP=C:\Users\Àî·ïöÎ\AppData\Local\Temp
--------------- S Y S T E M ---------------
OS:
Windows 11 , 64 bit Build 22621 (10.0.22621.3958)
OS uptime: 1 days 1:48 hours
CPU: total 16 (initial active 16) (8 cores per cpu, 2 threads per core) family 6 model 165 stepping 5 microcode 0xf0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, fma, vzeroupper, clflush, clflushopt
Processor Information for all 16 processors :
Max Mhz: 2904, Current Mhz: 2904, Mhz Limit: 2904
Memory: 4k page, system-wide physical 32636M (11215M free)
TotalPageFile size 32636M (AvailPageFile size 327M)
current process WorkingSet (physical memory assigned to process): 11M, peak: 11M
current process commit charge ("private bytes"): 71M, peak: 583M
vm_info: OpenJDK 64-Bit Server VM (17.0.8.1+1-LTS) for windows-amd64 JRE (17.0.8.1+1-LTS), built on Aug 23 2023 17:38:52 by "MicrosoftCorporation" with MS VC++ 16.10 / 16.11 (VS2019)
END.

View File

@ -0,0 +1,759 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ryproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ryproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\frmmessagebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\frmmessagebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\itrycn_info.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\itrycn_info.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmfilebrowser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmfilebrowser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\frmfinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\frmfinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddtools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddtools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\controls\\frmtitle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\controls\\frmtitle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\ftp\\frmuploadprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\ftp\\frmuploadprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcreateproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcreateproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 11,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "FrmProject.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:39:48.367Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "FrmMainEditor.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"ViewState": "AgIAANMDAAAAAAAAAAAewNwDAAAkAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:09:11.981Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "Form1.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"ViewState": "AgIAABQAAAAAAAAAAADwvx4AAAAZAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T01:58:44.796Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 28,
"Title": "rySearch.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"RelativeDocumentMoniker": "..\\..\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"RelativeToolTip": "..\\..\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"ViewState": "AgIAAC4BAAAAAAAAAAASwDQBAAAgAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:35:53.178Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "RyProject.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"ViewState": "AgIAAH4BAAAAAAAAAAA3wH4BAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T07:22:20.456Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "FrmMessageBox.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T05:59:33.938Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "FrmProject.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"ViewState": "AgIAAAQEAAAAAAAAAAAAAAcEAAAVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:40:03.384Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "FrmSetting.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:09.902Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "FrmSetting.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"ViewState": "AgIAAJEBAAAAAAAAAAAiwKQBAAAxAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T05:54:23.789Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "Form1.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T05:59:35.501Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "Itrycn_Info.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"ViewState": "AgIAAKoAAAAAAAAAAADwvwEBAAAaAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T06:14:56.613Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "FrmAddVar.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:07.644Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 20,
"Title": "FindReplace.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"ViewState": "AgIAAAABAAAAAAAAAAAvwA4BAAADAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:06:05.327Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "FrmWebGet.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T00:55:51.8Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 15,
"Title": "FrmFileBrowser.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmFileBrowser.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmFileBrowser.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:04:25.539Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "FrmFileBrowser_New.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:04:29.698Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "FrmFileBrowser_New.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"ViewState": "AgIAANoEAAAAAAAAAAAMwOwEAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:05:42.087Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "FrmMainEditor.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:09:06.018Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 16,
"Title": "FindReplaceDialog.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:05:14.666Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 17,
"Title": "FrmUploadFilesToFtp.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"ViewState": "AgIAAC8AAAAAAAAAAAAvwDIAAAA3AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T07:16:50.608Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 19,
"Title": "FrmUploadUpdateZipToFtp.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:36:42.083Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 18,
"Title": "FrmUploadUpdateZipToFtp.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"ViewState": "AgIAABwAAAAAAAAAAAAAADMAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:46:17.661Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 21,
"Title": "FrmUploadFilesToFtp.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T07:15:54.077Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 22,
"Title": "FindReplaceDialog.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"ViewState": "AgIAACcBAAAAAAAAAAAvwDYBAAA0AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:05:18.629Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 24,
"Title": "IncrementalSearcher.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"ViewState": "AgIAABQBAAAAAAAAAAAUwBgBAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T06:17:07.791Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 25,
"Title": "IncrementalSearcher.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T06:29:07.674Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 23,
"Title": "FindReplace.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T06:29:19.516Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 26,
"Title": "FrmFinding.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:05:06.98Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 27,
"Title": "FrmWebGet.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"ViewState": "AgIAAOAGAAAAAAAAAAAAAOYGAAALAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T00:56:03.069Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 29,
"Title": "FrmAddTools.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:06.132Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 30,
"Title": "FrmTitle.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:12.827Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 32,
"Title": "FrmXpath.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-07T02:22:33.189Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 31,
"Title": "FrmXpath.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"ViewState": "AgIAAFcAAAAAAAAAAAA0wF4AAAAyAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-07T02:22:45.295Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 34,
"Title": "FrmUploadProg.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmUploadProg.cs",
"RelativeDocumentMoniker": "RySmartEditor\\FTP\\FrmUploadProg.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmUploadProg.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\FTP\\FrmUploadProg.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-25T02:28:44.883Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 33,
"Title": "FrmWebGet.Designer.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"ViewState": "AgIAADYEAAAAAAAAAAAAADoEAAA2AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T05:42:51.85Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 35,
"Title": "FrmColor.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"ViewState": "AgIAAB0AAAAAAAAAAADgvyoAAAA4AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T03:09:44.273Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 40,
"Title": "FrmDownProg.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs",
"RelativeDocumentMoniker": "RySmartEditor\\FTP\\FrmDownProg.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\FTP\\FrmDownProg.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-25T02:25:03.014Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 39,
"Title": "FrmDownProg.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs",
"RelativeDocumentMoniker": "RySmartEditor\\FTP\\FrmDownProg.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs",
"RelativeToolTip": "RySmartEditor\\FTP\\FrmDownProg.cs",
"ViewState": "AgIAABYAAAAAAAAAAIA2wB8AAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-25T02:25:08.234Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 38,
"Title": "FrmStrToCode.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-28T08:27:04.422Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 36,
"Title": "FrmProject.Designer.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T00:31:55.969Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 37,
"Title": "FrmStrToCode.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"ViewState": "AgIAAAwAAAAAAAAAAAAiwBsAAACSAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-28T08:27:11.198Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 41,
"Title": "FrmCreateProject.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:36:28.98Z",
"EditorCaption": " [\u8BBE\u8BA1]"
}
]
},
{
"DockedWidth": 200,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{ca8cc5c7-0231-406a-95cd-aa5ed6ac0190}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
}
]
},
{
"DockedWidth": 200,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{57d563b6-44a5-47df-85be-f4199ad6b651}"
}
]
}
]
}
]
}

View File

@ -0,0 +1,759 @@
{
"Version": 1,
"WorkspaceRootPath": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ryproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ryproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\frmmessagebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\frmmessagebox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\itrycn_info.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\itrycn_info.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddvar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmsetting.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|e:\\my datas\\my codes\\\u6BD5\u65B9\u9879\u76EE\\csharp\\superdesign\\source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmfilebrowser_new.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmmaineditor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\smarteditor\\frmfilebrowser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\smarteditor\\frmfilebrowser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadupdateziptoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\ftp\\frmuploadfilestoftp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplacedialog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\findreplace.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\incrementalsearcher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\controls\\highlight\\findreplace\\frmfinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\controls\\highlight\\findreplace\\frmfinding.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddtools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\manager\\frmaddtools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\controls\\frmtitle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\controls\\frmtitle.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmxpath.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmwebget.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\ftp\\frmuploadprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\ftp\\frmuploadprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmproject.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmstrtocode.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{90AFB93F-4147-473B-9A25-50F5B21FA2C6}|RySmartEditor\\RySmartEditor.csproj|solutionrelative:rysmarteditor\\ftp\\frmdownprog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcreateproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{8177CFD1-097C-4D4E-919D-8B519289496E}|\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj|solutionrelative:\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\tools\\frmcreateproject.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 11,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}"
},
{
"$type": "Bookmark",
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:129:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "FrmProject.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:39:48.367Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "FrmMainEditor.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"ViewState": "AgIAANMDAAAAAAAAAAAewNwDAAAkAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:09:11.981Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "Form1.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"ViewState": "AgIAABQAAAAAAAAAAADwvx4AAAAZAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T01:58:44.796Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 28,
"Title": "rySearch.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"RelativeDocumentMoniker": "..\\..\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"RelativeToolTip": "..\\..\\\u777F\u5143\u516C\u7528\u63A7\u4EF6\u7EC4\\Source\\RaUI\\UI\\Controls\\rySearch.cs",
"ViewState": "AgIAAC4BAAAAAAAAAAASwDQBAAAgAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:35:53.178Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "RyProject.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\RyProject.cs",
"ViewState": "AgIAAH4BAAAAAAAAAAA3wH4BAAAbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T07:22:20.456Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "FrmMessageBox.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\FrmMessageBox.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T05:59:33.938Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "FrmProject.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.cs",
"ViewState": "AgIAAAQEAAAAAAAAAAAAAAgEAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:40:03.384Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "FrmSetting.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:09.902Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "FrmSetting.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmSetting.cs",
"ViewState": "AgIAAJEBAAAAAAAAAAAiwKQBAAAxAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T05:54:23.789Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "Form1.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Form1.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T05:59:35.501Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "Itrycn_Info.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\Itrycn_Info.cs",
"ViewState": "AgIAAKoAAAAAAAAAAADwvwEBAAAaAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-19T06:14:56.613Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "FrmAddVar.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddVar.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:07.644Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 20,
"Title": "FindReplace.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"ViewState": "AgIAAAABAAAAAAAAAAAvwA4BAAADAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:06:05.327Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "FrmWebGet.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T00:55:51.8Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 15,
"Title": "FrmFileBrowser.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmFileBrowser.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmFileBrowser.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:04:25.539Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "FrmFileBrowser_New.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:04:29.698Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "FrmFileBrowser_New.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmFileBrowser_New.cs",
"ViewState": "AgIAANoEAAAAAAAAAAAMwOwEAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:05:42.087Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "FrmMainEditor.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"RelativeDocumentMoniker": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\SmartEditor\\FrmMainEditor.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\SmartEditor\\FrmMainEditor.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-06T03:09:06.018Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 16,
"Title": "FindReplaceDialog.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:05:14.666Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 17,
"Title": "FrmUploadFilesToFtp.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"ViewState": "AgIAAC8AAAAAAAAAAAAvwDIAAAA3AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T07:16:50.608Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 19,
"Title": "FrmUploadUpdateZipToFtp.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:36:42.083Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 18,
"Title": "FrmUploadUpdateZipToFtp.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadUpdateZipToFtp.cs",
"ViewState": "AgIAABwAAAAAAAAAAAAAADMAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:46:17.661Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 21,
"Title": "FrmUploadFilesToFtp.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FTP\\FrmUploadFilesToFtp.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T07:15:54.077Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 22,
"Title": "FindReplaceDialog.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplaceDialog.cs",
"ViewState": "AgIAACcBAAAAAAAAAAAvwDYBAAA0AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:05:18.629Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 24,
"Title": "IncrementalSearcher.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"ViewState": "AgIAABQBAAAAAAAAAAAUwBgBAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T06:17:07.791Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 25,
"Title": "IncrementalSearcher.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\IncrementalSearcher.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T06:29:07.674Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 23,
"Title": "FindReplace.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FindReplace.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T06:29:19.516Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 26,
"Title": "FrmFinding.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs",
"RelativeDocumentMoniker": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\Controls\\Highlight\\FindReplace\\FrmFinding.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-04T05:05:06.98Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 27,
"Title": "FrmWebGet.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.cs",
"ViewState": "AgIAAOAGAAAAAAAAAAAAAOYGAAALAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T00:56:03.069Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 29,
"Title": "FrmAddTools.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Manager\\FrmAddTools.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:06.132Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 30,
"Title": "FrmTitle.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Controls\\FrmTitle.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T06:01:12.827Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 32,
"Title": "FrmXpath.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-07T02:22:33.189Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 31,
"Title": "FrmXpath.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.cs",
"ViewState": "AgIAAFcAAAAAAAAAAAA0wF4AAAAyAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-07T02:22:45.295Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 34,
"Title": "FrmUploadProg.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmUploadProg.cs",
"RelativeDocumentMoniker": "RySmartEditor\\FTP\\FrmUploadProg.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmUploadProg.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\FTP\\FrmUploadProg.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-25T02:28:44.883Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 33,
"Title": "FrmWebGet.Designer.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmWebGet.Designer.cs",
"ViewState": "AgIAADYEAAAAAAAAAAAAADoEAAA2AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-12-02T05:42:51.85Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 35,
"Title": "FrmColor.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmColor.cs",
"ViewState": "AgIAAB0AAAAAAAAAAADgvyoAAAA4AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T03:09:44.273Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 40,
"Title": "FrmDownProg.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs",
"RelativeDocumentMoniker": "RySmartEditor\\FTP\\FrmDownProg.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "RySmartEditor\\FTP\\FrmDownProg.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-25T02:25:03.014Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 39,
"Title": "FrmDownProg.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs",
"RelativeDocumentMoniker": "RySmartEditor\\FTP\\FrmDownProg.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\FTP\\FrmDownProg.cs",
"RelativeToolTip": "RySmartEditor\\FTP\\FrmDownProg.cs",
"ViewState": "AgIAABYAAAAAAAAAAIA2wB8AAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-25T02:25:08.234Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 38,
"Title": "FrmStrToCode.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-28T08:27:04.422Z",
"EditorCaption": " [\u8BBE\u8BA1]"
},
{
"$type": "Document",
"DocumentIndex": 36,
"Title": "FrmProject.Designer.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.Designer.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-29T00:31:55.969Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 37,
"Title": "FrmStrToCode.cs",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmStrToCode.cs",
"ViewState": "AgIAAAwAAAAAAAAAAAAiwBsAAACSAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-28T08:27:11.198Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 41,
"Title": "FrmCreateProject.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs",
"RelativeDocumentMoniker": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs",
"ToolTip": "E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmCreateProject.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-11-18T08:36:28.98Z",
"EditorCaption": " [\u8BBE\u8BA1]"
}
]
},
{
"DockedWidth": 200,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{ca8cc5c7-0231-406a-95cd-aa5ed6ac0190}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
}
]
},
{
"DockedWidth": 200,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{57d563b6-44a5-47df-85be-f4199ad6b651}"
}
]
}
]
}
]
}

View File

@ -0,0 +1 @@
{"ShowEmptyProjects":false,"CustomColumnOrderings":{"name":0,"file-path":1,"file-name":2,"neutral-value":3,"neutral-comment":4,"type":5},"ShowValidationErrors":true,"SelectedResourceGroupsByProject":{"E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\SuperDesign.csproj":["E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmProject.resx","E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\\u5F00\u53D1\u8F85\u52A9\u5DE5\u5177\\Tools\\FrmXpath.resx"],"E:\\My Datas\\My Codes\\\u6BD5\u65B9\u9879\u76EE\\CSharp\\SuperDesign\\Source\\RySmartEditor\\RySmartEditor.csproj":[]},"VisibleColumnKeys":["name","neutral-value","neutral-comment"]}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
Scintilla: 5.3.6
Lexilla: 5.2.6

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,2 @@
Scintilla: 5.3.2
Lexilla: 5.2.1

View File

@ -0,0 +1,2 @@
Scintilla: 5.3.6
Lexilla: 5.2.6

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,62 @@
using .Tools.SmartEditor;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RySmartEditor
{
public class Init
{
public static void Show(string[] args)
{
if (args.Length >= 2)
{
if (args[0] == "edit")
{
string ProjectPath = args[1];
OpenEditor(ProjectPath);
}
}
else if(args.Length == 1)
{
if (args[0] == "edit" || System.IO.File.Exists(args[0]))
{
OpenEditor(args[0]);
}
else
{
OpenEditor("edit");
}
}
else
{
OpenEditor("edit");
//Application.Run(new FrmMainEditor());
}
}
static void OpenEditor(string path)
{
object mainHandle = QuickMsg.RyMemoryShare.ReadFromMemory(1024, typeof(Int64), "SmartEditor");
if (mainHandle != null && (long)mainHandle != 0)
{
var handle = new IntPtr((long)mainHandle);
if (path == "edit")
{
ryControls.Win32.SendMessage(handle, 17189, 100, 100);//让界面显示
}
else
{
ryConfig.MsgManager.SendMsg(handle, 1666, path);
}
return;
}
else
{
Application.Run(new FrmMainEditor(path == "edit" ? "" : path));
}
}
}
}

View File

@ -0,0 +1,364 @@
using ryCommon;
using ryCommonDb;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using static ryCommonDb.DataProvider;
namespace .Manager
{
public class Itrycn_Db
{
public static bool IsCloseConfirm = true;
public static string Sys_SQLConn = "<app>\\SysDb\\Tools.dat|";
public static string User_SQLConn = "<app>\\UserDb\\MyDb.dat|";
public static string History_SQLConn = "<app>\\UserDb\\history.dat|";
public static ryCommonDb.DataProvider.DataProviderType dataType = ryCommonDb.DataProvider.DataProviderType.SQLiteDataProvider;
public static IDbInterface CreateDataProvider(DataProviderType dataProviderType)
{
switch (dataProviderType)
{
//case DataProviderType.OdbcDataProvider:
// return new OdbcDataProvider();
//case DataProviderType.OleDbDataProvider:
// return new OleDbDataProvider();
//case DataProviderType.OracleDataProvider:
// return new OracleDataProvider();
case DataProviderType.SQLiteDataProvider:
return new SQLiteDataProvider();
default:
return null;
}
}
/// <summary>
/// 判断WinSCP是否在运行
/// </summary>
/// <returns></returns>
public static bool WinSCP_IsRunning() {
var exist = false;
try {
var proc_list = Process.GetProcessesByName("WinSCP");
for (int i = 0; i < proc_list.Length; i++) {
var path = proc_list[i].GetPath();
if (path.Length > 0) {
if (path.IndexOfEx(Application.StartupPath) < 0) {
exist = true; break;
}
}
}
}
catch {
}
if (!exist) {
//RyForm.get
}
return exist;
}
public static void DeleteFiles(string dir, string filter)
{
var files = System.IO.Directory.GetFiles(dir, filter);
for (int i = 0; i < files.Length; i++)
{
ryCommon.RyFiles.DeleteFile(files[i]);
}
ryCommon.RyFiles.DeleteFile(dir + "\\" + filter);
var dirs = System.IO.Directory.GetDirectories(dir);
for (int i = 0; i < dirs.Length; i++)
{
DeleteFiles(dirs[i], filter);
}
}
public static void CreateSysTable()
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(Sys_SQLConn) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Tools");
mySQL.AddField("Name", "");
mySQL.AddField("Des", "");
mySQL.AddField("Keys", "");
mySQL.AddField("Addr", "");
mySQL.AddField("PY", "");
mySQL.AddField("Sort", 0);
mySQL.AddField("addTime",DateTime.Now);
db.CreateDb(mySQL);
#endregion
//
}
}
/// <summary>
/// 获取设置
/// </summary>
/// <param name="name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
public static string GetSetting(string name, string defValue)
{
var result = defValue;
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(User_SQLConn) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Settings");
mySQL.AddField("Name", name);
var ds = db.ReadData("select * from Settings where Name=@Name", mySQL);
if (ds.HaveData())
{
result = ds.GetRow(0)["Value"].ToString();
}
ds.Dispose();
}
db.Free();
return result;
}
/// <summary>
/// 设置设置
/// </summary>
/// <param name="name"></param>
/// <param name="defValue"></param>
/// <returns></returns>
public static int SetSetting(string name, string value)
{
var result = 0;
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(User_SQLConn) == 1)
{
RyQuickSQL mySQL = new RyQuickSQL("Settings");
mySQL.AddField("Name", name);
mySQL.AddField("Value", value);
result= db.ExecuteNonQuery(mySQL.GetUpdateSQL()+ " where Name=@Name", mySQL);
if (result==0)
{
mySQL.AddField("addTime", DateTime.Now);
result = db.ExecuteNonQuery(mySQL.GetInsertSQL(), mySQL);
}
}
db.Free();
return result;
}
public static void CreateDb()
{
CreateSysTable();
CreateUserTable();
CreateHistoryTable();
}
public static void CreateUserTable()
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(User_SQLConn) == 1)
{
#region Url表
RyQuickSQL mySQL = new RyQuickSQL("Urls");
mySQL.AddField("Name", "");
mySQL.AddField("Url", "");
mySQL.AddField("Cookie", "");
mySQL.AddField("Postdata", "");
mySQL.AddField("Method", "");
mySQL.AddField("Header", "");
mySQL.AddField("Referer", "");
mySQL.AddField("ContentType", "");
mySQL.AddField("Encoding", "");
mySQL.AddField("IsFav", 0);
mySQL.AddField("Des", "");
mySQL.AddField("ClickCount", 0);//点击次数
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region
mySQL.Clear();
mySQL.TableName = "Starts"; ;
mySQL.AddField("Addr", "");
mySQL.AddField("Name", "");
mySQL.AddField("ClickCount", 0);//点击次数
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region
mySQL.Clear();
mySQL.TableName = "VarInfo"; ;
mySQL.AddField("VarName", "");
mySQL.AddField("VarValue", "");
mySQL.AddField("Des", "");//备注
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region API表
mySQL.Clear();
mySQL.TableName = "api";
mySQL.AddField("Name", "");
mySQL.AddField("Url", "");
mySQL.AddField("APIName", "");
mySQL.AddField("Postdata", "");
mySQL.AddField("desc", "");
mySQL.AddField("ClickCount", 0);//点击次数
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
if (db.CreateDb(mySQL) == 1)
{
db.ExecuteNonQuery("CREATE INDEX index_APIName ON api(APIName); ");
db.ExecuteNonQuery("CREATE INDEX index_APIUrl ON api(Url); ");
}
#endregion
#region FTP表
mySQL.Clear();
mySQL.TableName = "FTP";
mySQL.AddField("name", "");
mySQL.AddField("ip", "");
mySQL.AddField("port", 0);
mySQL.AddField("remoteDir", "");
mySQL.AddField("username", "");
mySQL.AddField("pwd", "");
mySQL.AddField("encrypt", 0);
mySQL.AddField("des", "");
mySQL.AddField("addTime", DateTime.Now);
mySQL.AddField("editTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region Site表
mySQL.Clear();
mySQL.TableName = "Site";
mySQL.AddField("name", "");
mySQL.AddField("localPath", "");
mySQL.AddField("ftpId", 0);
mySQL.AddField("ftpDir", "");
mySQL.AddField("addTime", DateTime.Now);
mySQL.AddField("editTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region FavGroup表
mySQL.Clear();
mySQL.TableName = "FavGroup";
mySQL.AddField("name", "");
mySQL.AddField("addTime", DateTime.Now);
mySQL.AddField("editTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region FavFiles表
mySQL.Clear();
mySQL.TableName = "FavFiles";
mySQL.AddField("name", "");
mySQL.AddField("FilePath", "");
mySQL.AddField("FindText", "");
mySQL.AddField("GroupId", 1);
mySQL.AddField("addTime", DateTime.Now);
mySQL.AddField("editTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region
mySQL.Clear();
mySQL.TableName = "Settings";
mySQL.AddField("Name", "");
mySQL.AddField("Value", "");//值
mySQL.AddField("addTime", DateTime.Now);
if (db.CreateDb(mySQL) == 1)
{
db.ExecuteNonQuery("CREATE INDEX index_Name ON Settings(Name); ");
}
#endregion
}
}
public static void CreateHistoryTable()
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(History_SQLConn) == 1)
{
#region
RyQuickSQL mySQL = new RyQuickSQL("Files");
mySQL.AddField("FilePath", "");
mySQL.AddField("editTime", DateTime.Now);
mySQL.AddField("addTime", DateTime.Now);
if (db.CreateDb(mySQL) == 1)
{
db.ExecuteNonQuery("CREATE INDEX index_FilePath ON Files(FilePath); ");
}
#endregion
#region
mySQL.Clear();
mySQL.TableName = "History"; ;
mySQL.AddField("fileid", 0);
mySQL.AddField("name", "");
mySQL.AddField("size", 0L);
mySQL.AddField("content", "");
mySQL.AddField("addTime", DateTime.Now);
db.CreateDb(mySQL);
#endregion
#region
mySQL.Clear();
mySQL.TableName = "Settings";
mySQL.AddField("Name", "");
mySQL.AddField("Value", "");//值
mySQL.AddField("addTime", DateTime.Now);
if (db.CreateDb(mySQL) == 1)
{
db.ExecuteNonQuery("CREATE INDEX index_Name ON Settings(Name); ");
}
#endregion
}
}
/// <summary>
/// 添加历史记录
/// </summary>
/// <param name="path"></param>
/// <param name="content"></param>
public static void AddHistory(string path, string content)
{
new Thread(Start).Start();
void Start()
{
IDbInterface db = CreateDataProvider(dataType);
if (db.ConnDb(History_SQLConn) == 1)
{
var isadd = false;
RyQuickSQL mySQL = new RyQuickSQL("Files");
mySQL.AddField("FilePath", path);
mySQL.AddField("editTime", DateTime.Now);
if (db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where FilePath=@FilePath", mySQL) == 0)
{
mySQL.AddField("addTime", DateTime.Now);
db.Insert(mySQL);
isadd = true;
}
var ds = db.ReadData("select * from Files where FilePath=@FilePath", mySQL);
if (ds.HaveData())
{
var fileid = ds.GetFirstRowData()["id"].ToInt();
var issame = false;
if (!isadd)
{
var ds_his = db.ReadData("select * from History where fileid=" + fileid + " order by addTime desc limit 1");
if (ds_his.HaveData())
{
if (ds_his.GetFirstRowData()["content"].ToString() == content)
{
issame = true;
}
}
ds_his.Dispose();
}
if (!issame)
{
mySQL.Clear();
mySQL.TableName = "History";
mySQL.AddField("fileid", fileid);
mySQL.AddField("size", content.Length);
mySQL.AddField("content", content);
mySQL.AddField("addTime", DateTime.Now);
db.Insert(mySQL);
}
}
ds.Dispose();
}
db.Free();
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,74 @@
#region License
// MIT License
//
// Copyright (c) 2018 Denis Ivanov
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#endregion
namespace Jsbeautifier
{
using System;
public class BeautifierFlags
{
public BeautifierFlags(string mode)
{
PreviousMode = "BLOCK";
Mode = mode;
VarLine = false;
VarLineTainted = false;
VarLineReindented = false;
InHtmlComment = false;
IfLine = false;
ChainExtraIndentation = 0;
InCase = false;
InCaseStatement = false;
CaseBody = false;
IndentationLevel = 0;
TernaryDepth = 0;
}
public string PreviousMode { get; set; }
public string Mode { get; set; }
public bool VarLine { get; set; }
public bool VarLineTainted { get; set; }
public bool VarLineReindented { get; set; }
public bool InHtmlComment { get; set; }
public bool IfLine { get; set; }
public int ChainExtraIndentation { get; set; }
public bool InCase { get; set; }
public bool InCaseStatement { get; set; }
public bool CaseBody { get; set; }
public int IndentationLevel { get; set; }
public int TernaryDepth { get; set; }
}
}

View File

@ -0,0 +1,69 @@
#region License
// MIT License
//
// Copyright (c) 2018 Denis Ivanov
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#endregion
namespace Jsbeautifier
{
public class BeautifierOptions
{
public BeautifierOptions()
{
IndentSize = 4;
IndentChar = ' ';
IndentWithTabs = false;
PreserveNewlines = true;
MaxPreserveNewlines = 10.0f;
JslintHappy = false;
BraceStyle = BraceStyle.Collapse;
KeepArrayIndentation = false;
KeepFunctionIndentation = false;
EvalCode = false;
WrapLineLength = 0;
BreakChainedMethods = false;
}
public uint IndentSize { get; set; }
public char IndentChar { get; set; }
public bool IndentWithTabs { get; set; }
public bool PreserveNewlines { get; set; }
public float MaxPreserveNewlines { get; set; }
public bool JslintHappy { get; set; }
public BraceStyle BraceStyle { get; set; }
public bool KeepArrayIndentation { get; set; }
public bool KeepFunctionIndentation { get; set; }
public bool EvalCode { get; set; }
public int WrapLineLength { get; set; }
public bool BreakChainedMethods { get; set; }
}
}

View File

@ -0,0 +1,31 @@
#region License
// MIT License
//
// Copyright (c) 2018 Denis Ivanov
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#endregion
namespace Jsbeautifier
{
public enum BraceStyle
{
Expand, Collapse, EndExpand
}
}

View File

@ -0,0 +1,113 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Windows.Forms;
using ryCommon;
using QuickMsg;
using System.Runtime.CompilerServices;
using System.Threading;
namespace ryConfig
{
/// <summary>
/// 流程软件通信类
/// </summary>
public class MsgManager
{
[DllImport("user32.dll", EntryPoint = "GetParent", SetLastError = true)]
private static extern IntPtr GetParent(IntPtr hWnd);
[DllImport("user32.dll", EntryPoint = "GetWindowThreadProcessId")]
private static extern uint GetWindowThreadProcessId(IntPtr hWnd, ref uint lpdwProcessId);
[DllImport("user32.dll", EntryPoint = "IsWindow")]
private static extern bool IsWindow(IntPtr hWnd);
private const int WM_COPYDATA = 0x004A;
public struct COPYDATASTRUCT
{
public IntPtr dwData;
public int cData;
[MarshalAs(UnmanagedType.LPStr)]
public string lpData;
}
[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hwnd, int msg, int wParam, ref COPYDATASTRUCT IParam);
/// <summary>
/// 向指定句柄发送消息
/// </summary>
/// <param name="handle"></param>
/// <param name="wParam"></param>
/// <param name="str">要发送的文字内容</param>
public static void SendMsg(IntPtr handle, int wParam, string str)
{
byte[] arr = System.Text.Encoding.Default.GetBytes(str);
int len = arr.Length;
COPYDATASTRUCT cdata;
cdata.dwData = (IntPtr)100;
cdata.lpData = str;
cdata.cData = len + 1;
SendMessage(handle, WM_COPYDATA, wParam, ref cdata);
}
/// <summary>
/// 发送消息到文本编辑器
/// </summary>
/// <param name="wParam">附带信息</param>
/// <param name="str">要发送的文字内容</param>
public static void SendMsgToEditor(string str)
{
object mainHandle = QuickMsg.RyMemoryShare.ReadFromMemory(1024, typeof(Int64), "SmartEditor");
if (mainHandle != null)
{
SendMsg((IntPtr)mainHandle.ToInt64(), 0, str);
}
}
/// <summary>
/// 发送消息到指定的内存ID窗口
/// </summary>
/// <param name="MemoryId">内存ID</param>
/// <param name="wParam">附带信息标识</param>
/// <param name="str">发送的内容</param>
public static void SendMsg(string MemoryId, int wParam, string str)
{
if (MemoryId == null || MemoryId.Length == 0)
{
return;
}
else
{
object mainHandle = QuickMsg.RyMemoryShare.ReadFromMemory(1024, typeof(Int64), MemoryId);
if (mainHandle != null && (long)mainHandle != 0)
{
SendMsg((IntPtr)mainHandle.ToInt64(), wParam, str);
}
}
}
/// <summary>
/// 获取消息字符串内容
/// </summary>
/// <param name="m"></param>
/// <returns></returns>
public static string GetMsg(Message m)
{
COPYDATASTRUCT cdata = new COPYDATASTRUCT();
Type mytype = cdata.GetType();
cdata = (COPYDATASTRUCT)m.GetLParam(mytype);
return cdata.lpData;
}
/// <summary>
/// 通知已打开的编辑器,显示界面
/// </summary>
public static void ShowEditorUI()
{
object mainHandle = QuickMsg.RyMemoryShare.ReadFromMemory(1024, typeof(Int64), "SmartEditor");
if (mainHandle != null && (long)mainHandle != 0)
{
ryControls.Win32.SendMessage(new IntPtr((long)mainHandle), 17189, 100, 100);//让界面显示
return;
}
}
}
}

View File

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

View File

@ -0,0 +1,520 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.TextEditor.Document;
using ICSharpCode.TextEditor;
using System.Diagnostics;
using System.IO;
namespace XmlPad
{
public partial class FindAndReplaceForm : Form
{
public FindAndReplaceForm()
{
InitializeComponent();
_search = new TextEditorSearcher();
}
TextEditorSearcher _search;
FastColoredTextBoxNS.FastColoredTextBox _editor;
FastColoredTextBoxNS.FastColoredTextBox Editor
{
get { return _editor; }
set
{
_editor = value;
_search.Document = _editor.Document;
UpdateTitleBar();
}
}
private void UpdateTitleBar()
{
string text = ReplaceMode ? "查找和替换" : "查找";
if (_editor != null && _editor.FileName != null)
text += " - " + Path.GetFileName(_editor.FileName);
if (_search.HasScanRegion)
text += " (只可选)";
this.Text = text;
}
public void ShowFor(FastColoredTextBoxNS.FastColoredTextBox editor, bool replaceMode)
{
Editor = editor;
_search.ClearScanRegion();
SelectionManager sm = editor.ActiveTextAreaControl.SelectionManager;
if (sm.HasSomethingSelected && sm.SelectionCollection.Count == 1)
{
ISelection sel = sm.SelectionCollection[0];
if (sel.StartPosition.Y == sel.EndPosition.Y)
txtLookFor.Text = sm.SelectedText;
else
_search.SetScanRegion(sel);
}
else
{
// Get the current word that the caret is on
Caret caret = editor.ActiveTextAreaControl.Caret;
int start = TextUtilities.FindWordStart(editor.Document, caret.Offset);
int endAt = TextUtilities.FindWordEnd(editor.Document, caret.Offset);
txtLookFor.Text = editor.Document.GetText(start, endAt - start);
}
ReplaceMode = replaceMode;
this.Owner = (Form)editor.TopLevelControl;
this.Show();
txtLookFor.SelectAll();
txtLookFor.Focus();
}
public bool ReplaceMode
{
get { return txtReplaceWith.Visible; }
set
{
btnReplace.Visible = btnReplaceAll.Visible = value;
lblReplaceWith.Visible = txtReplaceWith.Visible = value;
btnFindAllHighlightAll.Visible = !value;
this.AcceptButton = value ? btnReplace : btnFindNext;
UpdateTitleBar();
}
}
private void BtnFindPrevious_Click(object sender, EventArgs e)
{
FindNext(false, true, "内容没有找到!");
}
private void BtnFindNext_Click(object sender, EventArgs e)
{
FindNext(false, false, "内容没有找到");
}
public bool _lastSearchWasBackward = false;
public bool _lastSearchLoopedAround;
public TextRange FindNext(bool viaF3, bool searchBackward, string messageIfNotFound)
{
if (string.IsNullOrEmpty(txtLookFor.Text))
{
MessageBox.Show("没有指定要查找的内容!", "提示");
return null;
}
_lastSearchWasBackward = searchBackward;
_search.LookFor = txtLookFor.Text;
_search.MatchCase = chkMatchCase.Checked;
_search.MatchWholeWordOnly = chkMatchWholeWord.Checked;
Caret caret = _editor.ActiveTextAreaControl.Caret;
if (viaF3 && _search.HasScanRegion && !Globals.IsInRange(caret.Offset, _search.BeginOffset, _search.EndOffset))
{
// user moved outside of the originally selected region
_search.ClearScanRegion();
UpdateTitleBar();
}
int startFrom = caret.Offset - (searchBackward ? 1 : 0);
TextRange range = _search.FindNext(startFrom, searchBackward, out _lastSearchLoopedAround);
if (range != null)
SelectResult(range);
else if (messageIfNotFound != null)
MessageBox.Show(messageIfNotFound, "提示");
return range;
}
private void SelectResult(TextRange range)
{
TextLocation p1 = _editor.Document.OffsetToPosition(range.Offset);
TextLocation p2 = _editor.Document.OffsetToPosition(range.Offset + range.Length);
_editor.ActiveTextAreaControl.SelectionManager.SetSelection(p1, p2);
//_editor.ActiveTextAreaControl.ScrollTo(p1.Line, p1.Column);
// Also move the caret to the end of the selection, because when the user
// presses F3, the caret is where we start searching next time.
_editor.ActiveTextAreaControl.Caret.Position =
_editor.Document.OffsetToPosition(range.Offset + range.Length);
}
Dictionary<TextEditorControl, HighlightGroup> _highlightGroups = new Dictionary<TextEditorControl, HighlightGroup>();
private void btnHighlightAll_Click(object sender, EventArgs e)
{
if (!_highlightGroups.ContainsKey(_editor))
_highlightGroups[_editor] = new HighlightGroup(_editor);
HighlightGroup group = _highlightGroups[_editor];
if (string.IsNullOrEmpty(LookFor))
// Clear highlights
group.ClearMarkers();
else
{
_search.LookFor = txtLookFor.Text;
_search.MatchCase = chkMatchCase.Checked;
_search.MatchWholeWordOnly = chkMatchWholeWord.Checked;
bool looped = false;
int offset = 0, count = 0;
for (; ; )
{
TextRange range = _search.FindNext(offset, false, out looped);
if (range == null || looped)
break;
offset = range.Offset + range.Length;
count++;
TextMarker m = new TextMarker(range.Offset, range.Length,
TextMarkerType.SolidBlock, Color.Yellow, Color.Black);
group.AddMarker(m);
}
if (count == 0)
MessageBox.Show("没有找到你要查找的内容", "提示");
else
Close();
}
}
private void FindAndReplaceForm_FormClosing(object sender, FormClosingEventArgs e)
{ // Prevent dispose, as this form can be re-used
if (e.CloseReason != CloseReason.FormOwnerClosing)
{
if (this.Owner != null)
this.Owner.Select(); // prevent another app from being activated instead
e.Cancel = true;
Hide();
// Discard search region
_search.ClearScanRegion();
_editor.Refresh(); // must repaint manually
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
Close();
}
private void btnReplace_Click(object sender, EventArgs e)
{
SelectionManager sm = _editor.ActiveTextAreaControl.SelectionManager;
if (string.Equals(sm.SelectedText, txtLookFor.Text, StringComparison.OrdinalIgnoreCase))
InsertText(txtReplaceWith.Text);
FindNext(false, _lastSearchWasBackward, "内容没有找到!");
}
private void btnReplaceAll_Click(object sender, EventArgs e)
{
int count = 0;
// BUG FIX: if the replacement string contains the original search string
// (e.g. replace "red" with "very red") we must avoid looping around and
// replacing forever! To fix, start replacing at beginning of region (by
// moving the caret) and stop as soon as we loop around.
_editor.ActiveTextAreaControl.Caret.Position =
_editor.Document.OffsetToPosition(_search.BeginOffset);
//_editor.Document.UndoStack.StartUndoGroup();
//try
//{
lock (_editor.Document.UndoStack)
{
while (FindNext(false, false, null) != null)
{
if (_lastSearchLoopedAround)
break;
// Replace
count++;
InsertText(txtReplaceWith.Text);
}
}
//}
//finally
//{
// _editor.Document.UndoStack.EndUndoGroup();
//}
if (count == 0)
MessageBox.Show(string.Format("没有找到目标内容: {0}", txtLookFor.Text), "提示");
else
{
MessageBox.Show(string.Format("替换了 {0} 处内容!", count), "提示");
Close();
}
}
private void InsertText(string text)
{
TextArea textArea = _editor.ActiveTextAreaControl.TextArea;
//textArea.Document.UndoStack.StartUndoGroup();
//try
//{
lock (textArea.Document.UndoStack)
{
if (textArea.SelectionManager.HasSomethingSelected)
{
textArea.Caret.Position = textArea.SelectionManager.SelectionCollection[0].StartPosition;
textArea.SelectionManager.RemoveSelectedText();
}
textArea.InsertString(text);
}
//}
//finally
//{
// textArea.Document.UndoStack.EndUndoGroup();
//}
}
public string LookFor { get { return txtLookFor.Text; } }
}
public class TextRange : AbstractSegment
{
IDocument _document;
public TextRange(IDocument document, int offset, int length)
{
_document = document;
this.offset = offset;
this.length = length;
}
}
/// <summary>This class finds occurrances of a search string in a text
/// editor's IDocument... it's like Find box without a GUI.</summary>
public class TextEditorSearcher : IDisposable
{
IDocument _document;
public IDocument Document
{
get { return _document; }
set
{
if (_document != value)
{
ClearScanRegion();
_document = value;
}
}
}
// I would have used the TextAnchor class to represent the beginning and
// end of the region to scan while automatically adjusting to changes in
// the document--but for some reason it is sealed and its constructor is
// internal. Instead I use a TextMarker, which is perhaps even better as
// it gives me the opportunity to highlight the region. Note that all the
// markers and coloring information is associated with the text document,
// not the editor control, so TextEditorSearcher doesn't need a reference
// to the TextEditorControl. After adding the marker to the document, we
// must remember to remove it when it is no longer needed.
TextMarker _region = null;
/// <summary>Sets the region to search. The region is updated
/// automatically as the document changes.</summary>
public void SetScanRegion(ISelection sel)
{
SetScanRegion(sel.Offset, sel.Length);
}
/// <summary>Sets the region to search. The region is updated
/// automatically as the document changes.</summary>
public void SetScanRegion(int offset, int length)
{
Color bkgColor = _document.HighlightingStrategy.GetColorFor("Default").BackgroundColor;
_region = new TextMarker(offset, length, TextMarkerType.SolidBlock,
Globals.HalfMix(bkgColor, Color.FromArgb(160, 160, 160)));
_document.MarkerStrategy.AddMarker(_region);
}
public bool HasScanRegion
{
get { return _region != null; }
}
public void ClearScanRegion()
{
if (_region != null)
{
_document.MarkerStrategy.RemoveMarker(_region);
_region = null;
}
}
public void Dispose() { ClearScanRegion(); GC.SuppressFinalize(this); }
~TextEditorSearcher() { Dispose(); }
/// <summary>Begins the start offset for searching</summary>
public int BeginOffset
{
get
{
if (_region != null)
return _region.Offset;
else
return 0;
}
}
/// <summary>Begins the end offset for searching</summary>
public int EndOffset
{
get
{
if (_region != null)
return _region.EndOffset;
else
return _document.TextLength;
}
}
public bool MatchCase;
public bool MatchWholeWordOnly;
string _lookFor;
string _lookFor2; // uppercase in case-insensitive mode
public string LookFor
{
get { return _lookFor; }
set { _lookFor = value; }
}
/// <summary>Finds next instance of LookFor, according to the search rules
/// (MatchCase, MatchWholeWordOnly).</summary>
/// <param name="beginAtOffset">Offset in Document at which to begin the search</param>
/// <remarks>If there is a match at beginAtOffset precisely, it will be returned.</remarks>
/// <returns>Region of document that matches the search string</returns>
public TextRange FindNext(int beginAtOffset, bool searchBackward, out bool loopedAround)
{
Debug.Assert(!string.IsNullOrEmpty(_lookFor));
loopedAround = false;
int startAt = BeginOffset, endAt = EndOffset;
int curOffs = Globals.InRange(beginAtOffset, startAt, endAt);
_lookFor2 = MatchCase ? _lookFor : _lookFor.ToUpperInvariant();
TextRange result;
if (searchBackward)
{
result = FindNextIn(startAt, curOffs, true);
if (result == null)
{
loopedAround = true;
result = FindNextIn(curOffs, endAt, true);
}
}
else
{
result = FindNextIn(curOffs, endAt, false);
if (result == null)
{
loopedAround = true;
result = FindNextIn(startAt, curOffs, false);
}
}
return result;
}
public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
public delegate TResult Func<T, TResult>(T arg);
private TextRange FindNextIn(int offset1, int offset2, bool searchBackward)
{
Debug.Assert(offset2 >= offset1);
offset2 -= _lookFor.Length;
// Make behavior decisions before starting search loop
Func<char, char, bool> matchFirstCh;
Func<int, bool> matchWord;
if (MatchCase)
matchFirstCh = delegate(char lookFor, char c)
{
return lookFor == c;
};
else
matchFirstCh = delegate(char lookFor, char c)
{
return lookFor == Char.ToUpperInvariant(c);
};
if (MatchWholeWordOnly)
matchWord = IsWholeWordMatch;
else
matchWord = IsPartWordMatch;
// Search
char lookForCh = _lookFor2[0];
if (searchBackward)
{
for (int offset = offset2; offset >= offset1; offset--)
{
if (matchFirstCh(lookForCh, _document.GetCharAt(offset))
&& matchWord(offset))
return new TextRange(_document, offset, _lookFor.Length);
}
}
else
{
for (int offset = offset1; offset <= offset2; offset++)
{
if (matchFirstCh(lookForCh, _document.GetCharAt(offset))
&& matchWord(offset))
return new TextRange(_document, offset, _lookFor.Length);
}
}
return null;
}
private bool IsWholeWordMatch(int offset)
{
if (IsWordBoundary(offset) && IsWordBoundary(offset + _lookFor.Length))
return IsPartWordMatch(offset);
else
return false;
}
private bool IsWordBoundary(int offset)
{
return offset <= 0 || offset >= _document.TextLength ||
!IsAlphaNumeric(offset - 1) || !IsAlphaNumeric(offset);
}
private bool IsAlphaNumeric(int offset)
{
char c = _document.GetCharAt(offset);
return Char.IsLetterOrDigit(c) || c == '_';
}
private bool IsPartWordMatch(int offset)
{
string substr = _document.GetText(offset, _lookFor.Length);
if (!MatchCase)
substr = substr.ToUpperInvariant();
return substr == _lookFor2;
}
}
/// <summary>Bundles a group of markers together so that they can be cleared
/// together.</summary>
public class HighlightGroup : IDisposable
{
List<TextMarker> _markers = new List<TextMarker>();
TextEditorControl _editor;
IDocument _document;
public HighlightGroup(TextEditorControl editor)
{
_editor = editor;
_document = editor.Document;
}
public void AddMarker(TextMarker marker)
{
_markers.Add(marker);
_document.MarkerStrategy.AddMarker(marker);
}
public void ClearMarkers()
{
foreach (TextMarker m in _markers)
_document.MarkerStrategy.RemoveMarker(m);
_markers.Clear();
_editor.Refresh();
}
public void Dispose() { ClearMarkers(); GC.SuppressFinalize(this); }
~HighlightGroup() { Dispose(); }
public IList<TextMarker> Markers { get { return _markers.AsReadOnly(); } }
}
}

View File

@ -0,0 +1,235 @@
namespace XmlPad
{
partial class FindAndReplaceForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.lblReplaceWith = new System.Windows.Forms.Label();
this.txtLookFor = new System.Windows.Forms.TextBox();
this.txtReplaceWith = new System.Windows.Forms.TextBox();
this.btnFindNext = new System.Windows.Forms.Button();
this.btnReplace = new System.Windows.Forms.Button();
this.btnReplaceAll = new System.Windows.Forms.Button();
this.chkMatchWholeWord = new System.Windows.Forms.CheckBox();
this.chkMatchCase = new System.Windows.Forms.CheckBox();
this.btnFindAllHighlightAll = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.btnFindPrevious = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(77, 12);
this.label1.TabIndex = 0;
this.label1.Text = "查找内容(&N):";
//
// lblReplaceWith
//
this.lblReplaceWith.AutoSize = true;
this.lblReplaceWith.Location = new System.Drawing.Point(12, 36);
this.lblReplaceWith.Name = "lblReplaceWith";
this.lblReplaceWith.Size = new System.Drawing.Size(65, 12);
this.lblReplaceWith.TabIndex = 2;
this.lblReplaceWith.Text = "替换为(&P):";
//
// txtLookFor
//
this.txtLookFor.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtLookFor.Location = new System.Drawing.Point(95, 6);
this.txtLookFor.Name = "txtLookFor";
this.txtLookFor.Size = new System.Drawing.Size(232, 21);
this.txtLookFor.TabIndex = 1;
//
// txtReplaceWith
//
this.txtReplaceWith.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtReplaceWith.Location = new System.Drawing.Point(95, 33);
this.txtReplaceWith.Name = "txtReplaceWith";
this.txtReplaceWith.Size = new System.Drawing.Size(232, 21);
this.txtReplaceWith.TabIndex = 3;
//
// btnFindNext
//
this.btnFindNext.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnFindNext.Location = new System.Drawing.Point(228, 137);
this.btnFindNext.Name = "btnFindNext";
this.btnFindNext.Size = new System.Drawing.Size(100, 30);
this.btnFindNext.TabIndex = 6;
this.btnFindNext.Text = "查找下一个(&F)";
this.btnFindNext.UseVisualStyleBackColor = true;
this.btnFindNext.Click += new System.EventHandler(this.BtnFindNext_Click);
//
// btnReplace
//
this.btnReplace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnReplace.Location = new System.Drawing.Point(12, 174);
this.btnReplace.Name = "btnReplace";
this.btnReplace.Size = new System.Drawing.Size(100, 30);
this.btnReplace.TabIndex = 7;
this.btnReplace.Text = "替换(&R)";
this.btnReplace.UseVisualStyleBackColor = true;
this.btnReplace.Click += new System.EventHandler(this.btnReplace_Click);
//
// btnReplaceAll
//
this.btnReplaceAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnReplaceAll.Location = new System.Drawing.Point(119, 174);
this.btnReplaceAll.Name = "btnReplaceAll";
this.btnReplaceAll.Size = new System.Drawing.Size(100, 30);
this.btnReplaceAll.TabIndex = 9;
this.btnReplaceAll.Text = "全部替换(&A)";
this.btnReplaceAll.UseVisualStyleBackColor = true;
this.btnReplaceAll.Click += new System.EventHandler(this.btnReplaceAll_Click);
//
// chkMatchWholeWord
//
this.chkMatchWholeWord.AutoSize = true;
this.chkMatchWholeWord.Location = new System.Drawing.Point(145, 27);
this.chkMatchWholeWord.Name = "chkMatchWholeWord";
this.chkMatchWholeWord.Size = new System.Drawing.Size(90, 16);
this.chkMatchWholeWord.TabIndex = 5;
this.chkMatchWholeWord.Text = "全字匹配(&W)";
this.chkMatchWholeWord.UseVisualStyleBackColor = true;
//
// chkMatchCase
//
this.chkMatchCase.AutoSize = true;
this.chkMatchCase.Location = new System.Drawing.Point(22, 27);
this.chkMatchCase.Name = "chkMatchCase";
this.chkMatchCase.Size = new System.Drawing.Size(102, 16);
this.chkMatchCase.TabIndex = 4;
this.chkMatchCase.Text = "大小写匹配(&C)";
this.chkMatchCase.UseVisualStyleBackColor = true;
//
// btnFindAllHighlightAll
//
this.btnFindAllHighlightAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnFindAllHighlightAll.Location = new System.Drawing.Point(66, 174);
this.btnFindAllHighlightAll.Name = "btnFindAllHighlightAll";
this.btnFindAllHighlightAll.Size = new System.Drawing.Size(150, 30);
this.btnFindAllHighlightAll.TabIndex = 8;
this.btnFindAllHighlightAll.Text = "查找全部并高亮显示(&H)";
this.btnFindAllHighlightAll.UseVisualStyleBackColor = true;
this.btnFindAllHighlightAll.Visible = false;
this.btnFindAllHighlightAll.Click += new System.EventHandler(this.btnHighlightAll_Click);
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(228, 173);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(100, 30);
this.btnCancel.TabIndex = 6;
this.btnCancel.Text = "取消(&C)";
this.btnCancel.UseVisualStyleBackColor = true;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnFindPrevious
//
this.btnFindPrevious.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnFindPrevious.Location = new System.Drawing.Point(118, 138);
this.btnFindPrevious.Name = "btnFindPrevious";
this.btnFindPrevious.Size = new System.Drawing.Size(100, 30);
this.btnFindPrevious.TabIndex = 6;
this.btnFindPrevious.Text = "查找上一个(&P)";
this.btnFindPrevious.UseVisualStyleBackColor = true;
this.btnFindPrevious.Click += new System.EventHandler(this.BtnFindPrevious_Click);
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.chkMatchCase);
this.groupBox1.Controls.Add(this.chkMatchWholeWord);
this.groupBox1.Location = new System.Drawing.Point(14, 64);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(313, 63);
this.groupBox1.TabIndex = 10;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "查找选项";
//
// FindAndReplaceForm
//
this.AcceptButton = this.btnReplace;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(339, 215);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnReplaceAll);
this.Controls.Add(this.btnReplace);
this.Controls.Add(this.btnFindAllHighlightAll);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnFindPrevious);
this.Controls.Add(this.btnFindNext);
this.Controls.Add(this.txtReplaceWith);
this.Controls.Add(this.txtLookFor);
this.Controls.Add(this.lblReplaceWith);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FindAndReplaceForm";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "查找和替换";
this.TopMost = true;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FindAndReplaceForm_FormClosing);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label lblReplaceWith;
private System.Windows.Forms.TextBox txtLookFor;
private System.Windows.Forms.TextBox txtReplaceWith;
private System.Windows.Forms.Button btnFindNext;
private System.Windows.Forms.Button btnReplace;
private System.Windows.Forms.Button btnReplaceAll;
private System.Windows.Forms.CheckBox chkMatchWholeWord;
private System.Windows.Forms.CheckBox chkMatchCase;
private System.Windows.Forms.Button btnFindAllHighlightAll;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnFindPrevious;
private System.Windows.Forms.GroupBox groupBox1;
}
}

View File

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

View File

@ -0,0 +1,92 @@

namespace RySmartEditor.Controls
{
partial class FrmTitle
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.TxtTitle = new ryControls.TextBoxEx2();
this.BtnOK = new ryControls.ButtonEx();
this.SuspendLayout();
//
// TxtTitle
//
this.TxtTitle.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TxtTitle.BackColor = System.Drawing.Color.White;
this.TxtTitle.EmptyText = "请输入标题";
this.TxtTitle.ImeMode = System.Windows.Forms.ImeMode.Close;
this.TxtTitle.Location = new System.Drawing.Point(12, 23);
this.TxtTitle.MaxLength = 999999999;
this.TxtTitle.Multiline = false;
this.TxtTitle.Name = "TxtTitle";
this.TxtTitle.OnlyNumeric = false;
this.TxtTitle.PasswordChar = '\0';
this.TxtTitle.ReadOnly = false;
this.TxtTitle.SelectedText = "";
this.TxtTitle.SelectionLength = 0;
this.TxtTitle.SelectionStart = 0;
this.TxtTitle.Size = new System.Drawing.Size(363, 23);
this.TxtTitle.TabIndex = 111;
this.TxtTitle.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.TxtTitle.ToolTip = "";
this.TxtTitle.WordWrap = true;
//
// BtnOK
//
this.BtnOK.BaseColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(76)))), ((int)(((byte)(95)))));
this.BtnOK.Location = new System.Drawing.Point(292, 78);
this.BtnOK.Name = "BtnOK";
this.BtnOK.Size = new System.Drawing.Size(82, 26);
this.BtnOK.TabIndex = 112;
this.BtnOK.Text = "确定";
this.BtnOK.UseVisualStyleBackColor = true;
this.BtnOK.Click += new System.EventHandler(this.BtnOK_Click);
//
// FrmTitle
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(383, 116);
this.Controls.Add(this.BtnOK);
this.Controls.Add(this.TxtTitle);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FrmTitle";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "请输入标题";
this.TopMost = true;
this.ResumeLayout(false);
}
#endregion
private ryControls.ButtonEx BtnOK;
public ryControls.TextBoxEx2 TxtTitle;
}
}

View File

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace RySmartEditor.Controls
{
public partial class FrmTitle : Form
{
public FrmTitle()
{
InitializeComponent();
}
private void BtnOK_Click(object sender, EventArgs e)
{
if(TxtTitle.Text.Length<2)
{
MessageBox.Show("内容输入太短。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
DialogResult = DialogResult.OK;
}
}
}

View File

@ -0,0 +1,154 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
namespace AutocompleteMenuNS
{
/// <summary>
/// Item of autocomplete menu
/// </summary>
public class AutocompleteItem
{
public object Tag;
string toolTipTitle;
string toolTipText;
string menuText;
/// <summary>
/// Parent AutocompleteMenu
/// </summary>
public AutocompleteMenu Parent { get; internal set; }
/// <summary>
/// Text for inserting into textbox
/// </summary>
public string Text { get; set; }
/// <summary>
/// Image index for this item
/// </summary>
public int ImageIndex{get; set; }
/// <summary>
/// Alignment. The direction the text shows.
/// </summary>
public StringAlignment Alignment { get; set; }
/// <summary>
/// Title for tooltip.
/// </summary>
/// <remarks>Return null for disable tooltip for this item</remarks>
public virtual string ToolTipTitle
{
get { return toolTipTitle; }
set { toolTipTitle = value; }
}
/// <summary>
/// Tooltip text.
/// </summary>
/// <remarks>For display tooltip text, ToolTipTitle must be not null</remarks>
public virtual string ToolTipText
{
get { return toolTipText; }
set { toolTipText = value; }
}
/// <summary>
/// Menu text. This text is displayed in the drop-down menu.
/// </summary>
public virtual string MenuText
{
get { return menuText; }
set { menuText = value; }
}
public AutocompleteItem()
{
ImageIndex = -1;
}
public AutocompleteItem(string text):this()
{
Text = text;
Alignment = StringAlignment.Near;
}
public AutocompleteItem(string text, int imageIndex)
: this(text)
{
this.ImageIndex = imageIndex;
}
public AutocompleteItem(string text, int imageIndex, string menuText)
: this(text, imageIndex)
{
this.menuText = menuText;
}
public AutocompleteItem(string text, int imageIndex, string menuText, string toolTipTitle, string toolTipText)
: this(text, imageIndex, menuText)
{
this.toolTipTitle = toolTipTitle;
this.toolTipText = toolTipText;
}
/// <summary>
/// Returns text for inserting into Textbox
/// </summary>
public virtual string GetTextForReplace()
{
return Text;
}
/// <summary>
/// Compares fragment text with this item
/// </summary>
public virtual CompareResult Compare(string fragmentText)
{
if (Text.StartsWith(fragmentText, StringComparison.InvariantCultureIgnoreCase) &&
Text != fragmentText)
return CompareResult.VisibleAndSelected;
return CompareResult.Hidden;
}
/// <summary>
/// Returns text for display into popup menu
/// </summary>
public override string ToString()
{
return menuText ?? Text;
}
/// <summary>
/// This method is called after item was inserted into text
/// </summary>
public virtual void OnSelected(SelectedEventArgs e)
{
}
public virtual void OnPaint(PaintItemEventArgs e)
{
using(var brush = new SolidBrush(e.IsSelected ? e.Colors.SelectedForeColor : e.Colors.ForeColor))
e.Graphics.DrawString(ToString(), e.Font, brush, e.TextRect, new StringFormat() {Alignment = Alignment});
}
}
public enum CompareResult
{
/// <summary>
/// Item do not appears
/// </summary>
Hidden,
/// <summary>
/// Item appears
/// </summary>
Visible,
/// <summary>
/// Item appears and will selected
/// </summary>
VisibleAndSelected
}
}

View File

@ -0,0 +1,199 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace AutocompleteMenuNS
{
/// <summary>
/// This autocomplete item appears after dot
/// </summary>
public class MethodAutocompleteItem : AutocompleteItem
{
string firstPart;
string lowercaseText;
public MethodAutocompleteItem(string text)
: base(text)
{
lowercaseText = Text.ToLower();
}
public override CompareResult Compare(string fragmentText)
{
int i = fragmentText.LastIndexOf('.');
if (i < 0)
return CompareResult.Hidden;
string lastPart = fragmentText.Substring(i + 1);
firstPart = fragmentText.Substring(0, i);
if (lastPart == "") return CompareResult.Visible;
if (Text.StartsWith(lastPart, StringComparison.InvariantCultureIgnoreCase))
return CompareResult.VisibleAndSelected;
if (lowercaseText.Contains(lastPart.ToLower()))
return CompareResult.Visible;
return CompareResult.Hidden;
}
public override string GetTextForReplace()
{
return firstPart + "." + Text;
}
}
/// <summary>
/// Autocomplete item for code snippets
/// </summary>
/// <remarks>Snippet can contain special char ^ for caret position.</remarks>
public class SnippetAutocompleteItem : AutocompleteItem
{
public SnippetAutocompleteItem(string snippet)
{
Text = snippet.Replace("\r", "");
ToolTipTitle = "Code snippet:";
ToolTipText = Text;
}
public override string ToString()
{
return MenuText ?? Text.Replace("\n", " ").Replace("^", "");
}
public override string GetTextForReplace()
{
return Text;
}
public override void OnSelected(SelectedEventArgs e)
{
var tb = Parent.TargetControlWrapper;
//
if (!Text.Contains("^"))
return;
var text = tb.Text;
for (int i = Parent.Fragment.Start; i < text.Length; i++)
if (text[i] == '^')
{
tb.SelectionStart = i;
tb.SelectionLength = 1;
tb.SelectedText = "";
return;
}
}
/// <summary>
/// Compares fragment text with this item
/// </summary>
public override CompareResult Compare(string fragmentText)
{
if (Text.StartsWith(fragmentText, StringComparison.InvariantCultureIgnoreCase) &&
Text != fragmentText)
return CompareResult.Visible;
return CompareResult.Hidden;
}
}
/// <summary>
/// This class finds items by substring
/// </summary>
public class SubstringAutocompleteItem : AutocompleteItem
{
protected readonly string lowercaseText;
protected readonly bool ignoreCase;
public SubstringAutocompleteItem(string text, bool ignoreCase = true)
: base(text)
{
this.ignoreCase = ignoreCase;
if(ignoreCase)
lowercaseText = text.ToLower();
}
public override CompareResult Compare(string fragmentText)
{
if(ignoreCase)
{
if (lowercaseText.Contains(fragmentText.ToLower()))
return CompareResult.Visible;
}
else
{
if (Text.Contains(fragmentText))
return CompareResult.Visible;
}
return CompareResult.Hidden;
}
}
/// <summary>
/// This item draws multicolumn menu
/// </summary>
public class MulticolumnAutocompleteItem : SubstringAutocompleteItem
{
public bool CompareBySubstring { get; set; }
public string[] MenuTextByColumns { get; set; }
public int[] ColumnWidth { get; set; }
public StringAlignment[] Alignments { get; set; }
public MulticolumnAutocompleteItem(string[] menuTextByColumns, string insertingText, bool compareBySubstring = true, bool ignoreCase = true)
: base(insertingText, ignoreCase)
{
this.CompareBySubstring = compareBySubstring;
this.MenuTextByColumns = menuTextByColumns;
var tmp = new List<StringAlignment>();
for(int i = 0; i < menuTextByColumns.Length; i++)
tmp.Add(StringAlignment.Near);
this.Alignments = tmp.ToArray();
}
public override CompareResult Compare(string fragmentText)
{
if (CompareBySubstring)
return base.Compare(fragmentText);
if(ignoreCase)
{
if (Text.StartsWith(fragmentText, StringComparison.InvariantCultureIgnoreCase))
return CompareResult.VisibleAndSelected;
} else
if (Text.StartsWith(fragmentText))
return CompareResult.VisibleAndSelected;
return CompareResult.Hidden;
}
public override void OnPaint(PaintItemEventArgs e)
{
if (ColumnWidth != null && ColumnWidth.Length != MenuTextByColumns.Length)
throw new Exception("ColumnWidth.Length != MenuTextByColumns.Length");
int[] columnWidth = ColumnWidth;
if(columnWidth == null)
{
columnWidth = new int[MenuTextByColumns.Length];
float step = e.TextRect.Width/MenuTextByColumns.Length;
for (int i = 0; i < MenuTextByColumns.Length; i++)
columnWidth[i] = (int)step;
}
//draw columns
Pen pen = Pens.Silver;
float x = e.TextRect.X;
e.StringFormat.FormatFlags = e.StringFormat.FormatFlags | StringFormatFlags.NoWrap;
using (var brush = new SolidBrush(e.IsSelected ? e.Colors.SelectedForeColor : e.Colors.ForeColor))
for (int i=0;i<MenuTextByColumns.Length;i++)
{
var width = columnWidth[i];
var rect = new RectangleF(x, e.TextRect.Top, width, e.TextRect.Height);
e.Graphics.DrawLine(pen, new PointF(x, e.TextRect.Top), new PointF(x, e.TextRect.Bottom));
e.Graphics.DrawString(MenuTextByColumns[i], e.Font, brush, rect, new StringFormat() {Alignment = Alignments[i]});
x += width;
}
}
}
}

View File

@ -0,0 +1,420 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace AutocompleteMenuNS
{
[System.ComponentModel.ToolboxItem(false)]
public class AutocompleteListView : UserControl, IAutocompleteListView
{
private readonly ToolTip toolTip = new ToolTip();
public int HighlightedItemIndex { get; set; }
private int oldItemCount;
private int selectedItemIndex = -1;
private IList<AutocompleteItem> visibleItems;
/// <summary>
/// Duration (ms) of tooltip showing
/// </summary>
public int ToolTipDuration { get; set; }
/// <summary>
/// Occurs when user selected item for inserting into text
/// </summary>
public event EventHandler ItemSelected;
/// <summary>
/// Occurs when current hovered item is changing
/// </summary>
public event EventHandler<HoveredEventArgs> ItemHovered;
/// <summary>
/// Colors
/// </summary>
public Colors Colors { get; set; }
internal AutocompleteListView()
{
SetStyle(
ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint, true);
base.Font = new Font(FontFamily.GenericSansSerif, 11);
ItemHeight = Font.Height + 2;
VerticalScroll.SmallChange = ItemHeight;
BackColor = Color.White;
LeftPadding = 18;
ToolTipDuration = 3000;
Colors = new Colors();
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
toolTip.Dispose();
}
base.Dispose(disposing);
}
private int itemHeight;
public int ItemHeight
{
get { return itemHeight; }
set {
itemHeight = value;
VerticalScroll.SmallChange = value;
oldItemCount = -1;
AdjustScroll();
}
}
public override Font Font
{
get { return base.Font; }
set
{
base.Font = value;
ItemHeight = Font.Height + 2;
}
}
public int LeftPadding { get; set; }
public ImageList ImageList { get; set; }
public string[] ColumnsTitle { get; set; } = null;
public int[] ColumnsWidth { get; set; } = null;
public IList<AutocompleteItem> VisibleItems
{
get { return visibleItems; }
set
{
visibleItems = value;
SelectedItemIndex = -1;
AdjustScroll();
Invalidate();
}
}
public int SelectedItemIndex
{
get { return selectedItemIndex; }
set
{
AutocompleteItem item = null;
if (value >= 0 && value < VisibleItems.Count)
item = VisibleItems[value];
selectedItemIndex = value;
OnItemHovered(new HoveredEventArgs() { Item = item });
if (item != null)
{
ShowToolTip(item, this.Parent);
ScrollToSelected();
}
Invalidate();
}
}
private void OnItemHovered(HoveredEventArgs e)
{
if (ItemHovered != null)
ItemHovered(this, e);
}
private void AdjustScroll()
{
if (VisibleItems == null)
return;
if (oldItemCount == VisibleItems.Count)
return;
int needHeight = ItemHeight*VisibleItems.Count + 1;
if (HasColumn) needHeight += ItemHeight;
Height = Math.Min(needHeight, MaximumSize.Height);
AutoScrollMinSize = new Size(0, needHeight);
oldItemCount = VisibleItems.Count;
}
private void ScrollToSelected()
{
int y;
if(HasColumn)
y = (SelectedItemIndex + 1)*ItemHeight - VerticalScroll.Value;
else
y = SelectedItemIndex * ItemHeight - VerticalScroll.Value;
//if (HasColumn) y += ItemHeight;
if (y < 0)
if(HasColumn)
VerticalScroll.Value = (SelectedItemIndex + 1) * ItemHeight;
else
VerticalScroll.Value = SelectedItemIndex * ItemHeight;
if (y > ClientSize.Height - ItemHeight)
VerticalScroll.Value = Math.Min(VerticalScroll.Maximum,
(HasColumn ? (SelectedItemIndex*ItemHeight) + ItemHeight : SelectedItemIndex * ItemHeight) - ClientSize.Height + ItemHeight);
//Show headers if index 0 is selected.
if (HasColumn && SelectedItemIndex == 0)
VerticalScroll.Value = 0;
//some magic for update scrolls
AutoScrollMinSize -= new Size(1, 0);
AutoScrollMinSize += new Size(1, 0);
}
public Rectangle GetItemRectangle(int itemIndex)
{
var y = itemIndex * ItemHeight - VerticalScroll.Value;
return new Rectangle(0, y, ClientSize.Width - 1, ItemHeight - 1);
}
protected override void OnPaintBackground(PaintEventArgs e)
{
e.Graphics.Clear(Colors.BackColor);
}
private bool HasColumn
{
get
{
return ColumnsTitle != null && ColumnsTitle.Length != 0;
}
}
protected override void OnPaint(PaintEventArgs e)
{
bool rtl = RightToLeft == RightToLeft.Yes;
AdjustScroll();
int startI = VerticalScroll.Value/ItemHeight - 1;
int finishI = (VerticalScroll.Value + ClientSize.Height)/ItemHeight + 1;
int y = 0;
var sf = new StringFormat();
if (rtl)
sf.FormatFlags = StringFormatFlags.DirectionRightToLeft;
if (HasColumn && VerticalScroll.Value == 0)
{
var textRect = new Rectangle(LeftPadding, y, ClientSize.Width - 1 - LeftPadding, ItemHeight - 1);
if (rtl)
textRect = new Rectangle(1, y, ClientSize.Width - 1 - LeftPadding, ItemHeight - 1);
int[] columnWidth = ColumnsWidth;
if (columnWidth == null)
{
columnWidth = new int[ColumnsTitle.Length];
float step = textRect.Width / ColumnsTitle.Length;
for (int i = 0; i < ColumnsTitle.Length; i++)
columnWidth[i] = (int)step;
}
float x = textRect.X;
sf.Alignment = StringAlignment.Center;
for (int i = 0; i < ColumnsTitle.Length; i++)
{
using (var brush = new SolidBrush(Colors.ForeColor))
{
var width = columnWidth[i];
var rect = new RectangleF(x, textRect.Top, width, textRect.Height);
e.Graphics.DrawLine(Pens.Silver, new PointF(x, textRect.Top), new PointF(x, textRect.Bottom));
e.Graphics.DrawString(ColumnsTitle[i], Font, brush, rect, sf);
x += width;
}
}
if (rtl)
sf.FormatFlags = StringFormatFlags.DirectionRightToLeft;
else
sf = new StringFormat();
}
startI = Math.Max(startI, 0);
finishI = Math.Min(finishI, VisibleItems.Count);
for (int i = startI; i < finishI; i++)
{
if(HasColumn)
y = (i * ItemHeight - VerticalScroll.Value) + ItemHeight;
else
y = i * ItemHeight - VerticalScroll.Value;
if (ImageList != null && VisibleItems[i].ImageIndex >= 0)
if (rtl)
e.Graphics.DrawImage(ImageList.Images[VisibleItems[i].ImageIndex], Width - 1 - LeftPadding, y);
else
e.Graphics.DrawImage(ImageList.Images[VisibleItems[i].ImageIndex], 1, y);
var textRect = new Rectangle(LeftPadding, y, ClientSize.Width - 1 - LeftPadding, ItemHeight - 1);
if (rtl)
textRect = new Rectangle(1, y, ClientSize.Width - 1 - LeftPadding, ItemHeight - 1);
if (i == SelectedItemIndex)
{
Brush selectedBrush = new LinearGradientBrush(new Point(0, y - 3), new Point(0, y + ItemHeight),
Colors.SelectedBackColor2, Colors.SelectedBackColor);
e.Graphics.FillRectangle(selectedBrush, textRect);
using(var pen = new Pen(Colors.SelectedBackColor2))
e.Graphics.DrawRectangle(pen, textRect);
}
if (i == HighlightedItemIndex)
using (var pen = new Pen(Colors.HighlightingColor))
e.Graphics.DrawRectangle(pen, textRect);
var args = new PaintItemEventArgs(e.Graphics, e.ClipRectangle)
{
Font = Font,
TextRect = new RectangleF(textRect.Location, textRect.Size),
StringFormat = sf,
IsSelected = i == SelectedItemIndex,
IsHovered = i == HighlightedItemIndex,
Colors = Colors
};
//call drawing
VisibleItems[i].OnPaint(args);
}
}
protected override void OnScroll(ScrollEventArgs se)
{
base.OnScroll(se);
Invalidate(true);
}
protected override void OnMouseClick(MouseEventArgs e)
{
int i = PointToItemIndex(e.Location);
if (i >= 0)
{
base.OnMouseClick(e);
if (e.Button == MouseButtons.Left)
{
SelectedItemIndex = i;
ScrollToSelected();
Invalidate();
}
}
}
private Point mouseEnterPoint;
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
mouseEnterPoint = Control.MousePosition;
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (mouseEnterPoint != Control.MousePosition)
{
int i = PointToItemIndex(e.Location);
if (i >= 0)
{
HighlightedItemIndex = i;
Invalidate();
}
}
}
protected override void OnMouseDoubleClick(MouseEventArgs e)
{
int i = PointToItemIndex(e.Location);
if (i >= 0)
{
base.OnMouseDoubleClick(e);
SelectedItemIndex = i;
Invalidate();
OnItemSelected();
}
}
private void OnItemSelected()
{
if (ItemSelected != null)
ItemSelected(this, EventArgs.Empty);
}
private int PointToItemIndex(Point p)
{
var t = (p.Y + VerticalScroll.Value);
if (HasColumn)
t -= ItemHeight;
return (float)t / ItemHeight < 0 ? -1 : t / ItemHeight;
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
var host = Parent as AutocompleteMenuHost;
if (host != null)
if (host.Menu.ProcessKey((char) keyData, Keys.None))
return true;
return base.ProcessCmdKey(ref msg, keyData);
}
public void SelectItem(int itemIndex)
{
SelectedItemIndex = itemIndex;
ScrollToSelected();
Invalidate();
}
public void SetItems(List<AutocompleteItem> items)
{
VisibleItems = items;
SelectedItemIndex = -1;
AdjustScroll();
Invalidate();
}
public void ShowToolTip(AutocompleteItem autocompleteItem, Control control = null)
{
string title = autocompleteItem.ToolTipTitle;
string text = autocompleteItem.ToolTipText;
if (control == null)
control = this;
if (string.IsNullOrEmpty(title))
{
toolTip.ToolTipTitle = null;
toolTip.SetToolTip(control, null);
return;
}
if (string.IsNullOrEmpty(text))
{
toolTip.ToolTipTitle = null;
toolTip.Show(title, control, Width + 3, 0, ToolTipDuration);
}
else
{
toolTip.ToolTipTitle = title;
toolTip.Show(text, control, Width + 3, 0, ToolTipDuration);
}
}
public void HideToolTip(Control control)
{
toolTip.Hide(control);
}
public Control GetParentControl()
{
return this.Parent;
}
}
}

View File

@ -0,0 +1,903 @@
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// License: GNU Lesser General Public License (LGPLv3)
//
// Email: p_torgashov@ukr.net.
//
// Copyright (C) Pavel Torgashov, 2012-2015.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Collections;
using System.Diagnostics;
namespace AutocompleteMenuNS
{
[ProvideProperty("AutocompleteMenu", typeof(Control))]
public class AutocompleteMenu : Component, IExtenderProvider
{
private static readonly Dictionary<Control, AutocompleteMenu> AutocompleteMenuByControls =
new Dictionary<Control, AutocompleteMenu>();
private static readonly Dictionary<Control, ITextBoxWrapper> WrapperByControls =
new Dictionary<Control, ITextBoxWrapper>();
private ITextBoxWrapper targetControlWrapper;
private readonly Timer timer = new Timer();
private IEnumerable<AutocompleteItem> sourceItems = new List<AutocompleteItem>();
[Browsable(false)]
public IList<AutocompleteItem> VisibleItems { get { return Host.ListView.VisibleItems; } private set { Host.ListView.VisibleItems = value;} }
private Size maximumSize;
/// <summary>
/// Duration (ms) of tooltip showing
/// </summary>
[Description("Duration (ms) of tooltip showing")]
[DefaultValue(3000)]
public int ToolTipDuration
{
get { return Host.ListView.ToolTipDuration; }
set { Host.ListView.ToolTipDuration = value; }
}
public AutocompleteMenu()
{
Host = new AutocompleteMenuHost(this);
Host.ListView.ItemSelected += new EventHandler(ListView_ItemSelected);
Host.ListView.ItemHovered += new EventHandler<HoveredEventArgs>(ListView_ItemHovered);
VisibleItems = new List<AutocompleteItem>();
Enabled = true;
AppearInterval = 500;
timer.Tick += timer_Tick;
MaximumSize = new Size(180, 200);
AutoPopup = true;
SearchPattern = @"[\w\.]";
MinFragmentLength = 2;
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
timer.Dispose();
Host.Dispose();
}
base.Dispose(disposing);
}
void ListView_ItemSelected(object sender, EventArgs e)
{
OnSelecting();
}
void ListView_ItemHovered(object sender, HoveredEventArgs e)
{
OnHovered(e);
}
public void OnHovered(HoveredEventArgs e)
{
if (Hovered != null)
Hovered(this, e);
}
[Browsable(false)]
public int SelectedItemIndex { get { return Host.ListView.SelectedItemIndex; }
internal set { Host.ListView.SelectedItemIndex = value; }
}
internal AutocompleteMenuHost Host { get; set; }
/// <summary>
/// Called when user selected the control and needed wrapper over it.
/// You can assign own Wrapper for target control.
/// </summary>
[Description("Called when user selected the control and needed wrapper over it. You can assign own Wrapper for target control.")]
public event EventHandler<WrapperNeededEventArgs> WrapperNeeded;
protected void OnWrapperNeeded(WrapperNeededEventArgs args)
{
if (WrapperNeeded != null)
WrapperNeeded(this, args);
if (args.Wrapper == null)
args.Wrapper = TextBoxWrapper.Create(args.TargetControl);
}
ITextBoxWrapper CreateWrapper(Control control)
{
if (WrapperByControls.ContainsKey(control))
return WrapperByControls[control];
var args = new WrapperNeededEventArgs(control);
OnWrapperNeeded(args);
if (args.Wrapper != null)
WrapperByControls[control] = args.Wrapper;
return args.Wrapper;
}
/// <summary>
/// Current target control wrapper
/// </summary>
[Browsable(false)]
public ITextBoxWrapper TargetControlWrapper
{
get { return targetControlWrapper; }
set {
targetControlWrapper = value;
if (value != null && !WrapperByControls.ContainsKey(value.TargetControl))
{
WrapperByControls[value.TargetControl] = value;
SetAutocompleteMenu(value.TargetControl, this);
}
}
}
/// <summary>
/// Maximum size of popup menu
/// </summary>
[DefaultValue(typeof(Size), "180, 200")]
[Description("Maximum size of popup menu")]
public Size MaximumSize
{
get { return maximumSize; }
set {
maximumSize = value;
(Host.ListView as Control).MaximumSize = maximumSize;
(Host.ListView as Control).Size = maximumSize;
Host.CalcSize();
}
}
/// <summary>
/// Font
/// </summary>
public Font Font
{
get { return (Host.ListView as Control).Font; }
set { (Host.ListView as Control).Font = value; }
}
/// <summary>
/// Left padding of text
/// </summary>
[DefaultValue(18)]
[Description("Left padding of text")]
public int LeftPadding
{
get {
if (Host.ListView is AutocompleteListView)
return (Host.ListView as AutocompleteListView).LeftPadding;
else
return 0;
}
set {
if (Host.ListView is AutocompleteListView)
(Host.ListView as AutocompleteListView).LeftPadding = value;
}
}
/// <summary>
/// Colors of foreground and background
/// </summary>
[Browsable(true)]
[Description("Colors of foreground and background.")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public Colors Colors
{
get { return (Host.ListView as IAutocompleteListView).Colors; }
set { (Host.ListView as IAutocompleteListView).Colors = value; }
}
/// <summary>
/// AutocompleteMenu will popup automatically (when user writes text). Otherwise it will popup only programmatically or by Ctrl-Space.
/// </summary>
[DefaultValue(true)]
[Description("AutocompleteMenu will popup automatically (when user writes text). Otherwise it will popup only programmatically or by Ctrl-Space.")]
public bool AutoPopup { get; set; }
/// <summary>
/// AutocompleteMenu will capture focus when opening.
/// </summary>
[DefaultValue(false)]
[Description("AutocompleteMenu will capture focus when opening.")]
public bool CaptureFocus { get; set; }
/// <summary>
/// Indicates whether the component should draw right-to-left for RTL languages.
/// </summary>
[DefaultValue(typeof(RightToLeft), "No")]
[Description("Indicates whether the component should draw right-to-left for RTL languages.")]
public RightToLeft RightToLeft {
get { return Host.RightToLeft; }
set { Host.RightToLeft = value; }
}
/// <summary>
/// Image list
/// </summary>
public ImageList ImageList {
get { return Host.ListView.ImageList; }
set { Host.ListView.ImageList = value; }
}
/// <summary>
/// Fragment
/// </summary>
[Browsable(false)]
public Range Fragment { get; internal set; }
/// <summary>
/// Regex pattern for serach fragment around caret
/// </summary>
[Description("Regex pattern for serach fragment around caret")]
[DefaultValue(@"[\w\.]")]
public string SearchPattern { get; set; }
/// <summary>
/// Minimum fragment length for popup
/// </summary>
[Description("Minimum fragment length for popup")]
[DefaultValue(2)]
public int MinFragmentLength { get; set; }
/// <summary>
/// Allows TAB for select menu item
/// </summary>
[Description("Allows TAB for select menu item")]
[DefaultValue(false)]
public bool AllowsTabKey { get; set; }
/// <summary>
/// Interval of menu appear (ms)
/// </summary>
[Description("Interval of menu appear (ms)")]
[DefaultValue(500)]
public int AppearInterval { get; set; }
[DefaultValue(null)]
public string[] Items
{
get
{
if (sourceItems == null)
return null;
var list = new List<string>();
foreach (AutocompleteItem item in sourceItems)
list.Add(item.ToString());
return list.ToArray();
}
set { SetAutocompleteItems(value); }
}
/// <summary>
/// The control for menu displaying.
/// Set to null for restore default ListView (AutocompleteListView).
/// </summary>
[Browsable(false)]
public IAutocompleteListView ListView
{
get { return Host.ListView; }
set
{
if (ListView != null)
{
var ctrl = value as Control;
value.ImageList = ImageList;
ctrl.RightToLeft = RightToLeft;
ctrl.Font = Font;
ctrl.MaximumSize = MaximumSize;
}
Host.ListView = value;
Host.ListView.ItemSelected += new EventHandler(ListView_ItemSelected);
Host.ListView.ItemHovered += new EventHandler<HoveredEventArgs>(ListView_ItemHovered);
}
}
[DefaultValue(true)]
public bool Enabled { get; set; }
/// <summary>
/// Updates size of the menu
/// </summary>
public void Update()
{
Host.CalcSize();
}
/// <summary>
/// Returns rectangle of item
/// </summary>
public Rectangle GetItemRectangle(int itemIndex)
{
return Host.ListView.GetItemRectangle(itemIndex);
}
#region IExtenderProvider Members
bool IExtenderProvider.CanExtend(object extendee)
{
//find AutocompleteMenu with lowest hashcode
if (Container != null)
foreach (object comp in Container.Components)
if (comp is AutocompleteMenu)
if (comp.GetHashCode() < GetHashCode())
return false;
//we are main autocomplete menu on form ...
//check extendee as TextBox
if (!(extendee is Control))
return false;
var temp = TextBoxWrapper.Create(extendee as Control);
return temp!=null;
}
public void SetAutocompleteMenu(Control control, AutocompleteMenu menu)
{
if (menu != null)
{
if (WrapperByControls.ContainsKey(control))
{
var wrapper = WrapperByControls[control];
if (wrapper == null) return;
//
if (control.IsHandleCreated)
menu.SubscribeForm(wrapper);
else
control.HandleCreated += (o, e) => menu.SubscribeForm(wrapper);
//
AutocompleteMenuByControls[control] = this;
//
wrapper.LostFocus += menu.control_LostFocus;
wrapper.Scroll += menu.control_Scroll;
wrapper.KeyDown += menu.control_KeyDown;
wrapper.MouseDown += menu.control_MouseDown;
}
else
{
var wrapper = menu.CreateWrapper(control);
if (wrapper == null) return;
//
if (control.IsHandleCreated)
menu.SubscribeForm(wrapper);
else
control.HandleCreated += (o, e) => menu.SubscribeForm(wrapper);
//
AutocompleteMenuByControls[control] = this;
//
wrapper.LostFocus += menu.control_LostFocus;
wrapper.Scroll += menu.control_Scroll;
wrapper.KeyDown += menu.control_KeyDown;
wrapper.MouseDown += menu.control_MouseDown;
}
}
else
{
AutocompleteMenuByControls.TryGetValue(control, out menu);
AutocompleteMenuByControls.Remove(control);
ITextBoxWrapper wrapper = null;
WrapperByControls.TryGetValue(control, out wrapper);
WrapperByControls.Remove(control);
if (wrapper != null && menu != null)
{
wrapper.LostFocus -= menu.control_LostFocus;
wrapper.Scroll -= menu.control_Scroll;
wrapper.KeyDown -= menu.control_KeyDown;
wrapper.MouseDown -= menu.control_MouseDown;
}
}
}
#endregion
/// <summary>
/// User selects item
/// </summary>
[Description("Occurs when user selects item.")]
public event EventHandler<SelectingEventArgs> Selecting;
/// <summary>
/// It fires after item was inserting
/// </summary>
[Description("Occurs after user selected item.")]
public event EventHandler<SelectedEventArgs> Selected;
/// <summary>
/// It fires when item was hovered
/// </summary>
[Description("Occurs when user hovered item.")]
public event EventHandler<HoveredEventArgs> Hovered;
/// <summary>
/// Occurs when popup menu is opening
/// </summary>
public event EventHandler<CancelEventArgs> Opening;
private void timer_Tick(object sender, EventArgs e)
{
timer.Stop();
if(TargetControlWrapper!=null)
ShowAutocomplete(false);
}
private Form myForm;
void SubscribeForm(ITextBoxWrapper wrapper)
{
if (wrapper == null) return;
var form = wrapper.TargetControl.FindForm();
if (form == null) return;
if (myForm != null)
{
if (myForm == form)
return;
UnsubscribeForm(wrapper);
}
myForm = form;
form.LocationChanged += new EventHandler(form_LocationChanged);
form.ResizeBegin += new EventHandler(form_LocationChanged);
form.FormClosing += new FormClosingEventHandler(form_FormClosing);
form.LostFocus += new EventHandler(form_LocationChanged);
}
void UnsubscribeForm(ITextBoxWrapper wrapper)
{
if (wrapper == null) return;
var form = wrapper.TargetControl.FindForm();
if (form == null) return;
form.LocationChanged -= new EventHandler(form_LocationChanged);
form.ResizeBegin -= new EventHandler(form_LocationChanged);
form.FormClosing -= new FormClosingEventHandler(form_FormClosing);
form.LostFocus -= new EventHandler(form_LocationChanged);
}
private void form_FormClosing(object sender, FormClosingEventArgs e)
{
Close();
}
private void form_LocationChanged(object sender, EventArgs e)
{
Close();
}
private void control_MouseDown(object sender, MouseEventArgs e)
{
Close();
}
ITextBoxWrapper FindWrapper(Control sender)
{
while (sender != null)
{
if (WrapperByControls.ContainsKey(sender))
return WrapperByControls[sender];
sender = sender.Parent;
}
return null;
}
private void control_KeyDown(object sender, KeyEventArgs e)
{
TargetControlWrapper = FindWrapper(sender as Control);
bool backspaceORdel = e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete;
if (Host.Visible)
{
if (ProcessKey((char)e.KeyCode, Control.ModifierKeys))
e.SuppressKeyPress = true;
else
if (!backspaceORdel)
ResetTimer(1);
else
ResetTimer();
return;
}
if (!Host.Visible)
{
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Left:
case Keys.Right:
case Keys.End:
case Keys.Home:
case Keys.ControlKey:
case Keys.Escape:
case Keys.Tab:
{
timer.Stop();
return;
}
}
if (Control.ModifierKeys== Keys.Alt)
{
timer.Stop();
return;
}
if (Control.ModifierKeys == Keys.Control && e.KeyCode == Keys.Space)
{
ShowAutocomplete(true);
e.SuppressKeyPress = true;
return;
}
}
ResetTimer();
}
void ResetTimer()
{
ResetTimer(-1);
}
void ResetTimer(int interval)
{
if (interval <= 0)
timer.Interval = AppearInterval;
else
timer.Interval = interval;
timer.Stop();
timer.Start();
}
private void control_Scroll(object sender, ScrollEventArgs e)
{
Close();
}
private void control_LostFocus(object sender, EventArgs e)
{
if (!Host.Focused) Close();
}
public AutocompleteMenu GetAutocompleteMenu(Control control)
{
if (AutocompleteMenuByControls.ContainsKey(control))
return AutocompleteMenuByControls[control];
else
return null;
}
bool forcedOpened = false;
internal void ShowAutocomplete(bool forced)
{
if (forced)
forcedOpened = true;
if (TargetControlWrapper != null && TargetControlWrapper.Readonly)
{
Close();
return;
}
if (!Enabled)
{
Close();
return;
}
if (!forcedOpened && !AutoPopup)
{
Close();
return;
}
//build list
BuildAutocompleteList(forcedOpened);
//show popup menu
if (VisibleItems.Count > 0)
{
if (forced && VisibleItems.Count == 1 && Host.ListView.SelectedItemIndex == 0)
{
//do autocomplete if menu contains only one line and user press CTRL-SPACE
OnSelecting();
Close();
}
else
ShowMenu();
}
else
Close();
}
private void ShowMenu()
{
if (!Host.Visible)
{
var args = new CancelEventArgs();
OnOpening(args);
if (!args.Cancel)
{
//calc screen point for popup menu
Point point = TargetControlWrapper.TargetControl.Location;
point.Offset(2, TargetControlWrapper.TargetControl.Height + 2);
point = TargetControlWrapper.GetPositionFromCharIndex(Fragment.Start);
point.Offset(2, TargetControlWrapper.TargetControl.Font.Height + 2);
//
Host.Show(TargetControlWrapper.TargetControl, point);
if (CaptureFocus)
{
(Host.ListView as Control).Focus();
//ProcessKey((char) Keys.Down, Keys.None);
}
}
}
else
(Host.ListView as Control).Invalidate();
}
private void BuildAutocompleteList(bool forced)
{
var visibleItems = new List<AutocompleteItem>();
bool foundSelected = false;
int selectedIndex = -1;
//get fragment around caret
Range fragment = GetFragment(SearchPattern);
string text = fragment.Text;
//
if (sourceItems != null)
if (forced || (text.Length >= MinFragmentLength /* && tb.Selection.Start == tb.Selection.End*/))
{
Fragment = fragment;
//build popup menu
foreach (AutocompleteItem item in sourceItems)
{
item.Parent = this;
CompareResult res = item.Compare(text);
if (res != CompareResult.Hidden)
visibleItems.Add(item);
if (res == CompareResult.VisibleAndSelected && !foundSelected)
{
foundSelected = true;
selectedIndex = visibleItems.Count - 1;
}
}
}
VisibleItems = visibleItems;
if (foundSelected)
Host.ListView.SelectedItemIndex = selectedIndex;
else
Host.ListView.SelectedItemIndex = 0;
Host.ListView.HighlightedItemIndex = -1;
Host.CalcSize();
}
internal void OnOpening(CancelEventArgs args)
{
if (Opening != null)
Opening(this, args);
}
private Range GetFragment(string searchPattern)
{
var tb = TargetControlWrapper;
if (tb.SelectionLength > 0) return new Range(tb);
string text = tb.Text;
var regex = new Regex(searchPattern);
var result = new Range(tb);
int startPos = tb.SelectionStart;
//go forward
int i = startPos;
while (i >= 0 && i < text.Length)
{
if (!regex.IsMatch(text[i].ToString()))
break;
i++;
}
result.End = i;
//go backward
i = startPos;
while (i > 0 && (i - 1) < text.Length)
{
if (!regex.IsMatch(text[i - 1].ToString()))
break;
i--;
}
result.Start = i;
return result;
}
public void Close()
{
Host.ListView.HideToolTip(Host.ListView.GetParentControl());
Host.Close();
forcedOpened = false;
}
public void SetAutocompleteItems(IEnumerable<string> items)
{
var list = new List<AutocompleteItem>();
if (items == null)
{
sourceItems = null;
return;
}
foreach (string item in items)
list.Add(new AutocompleteItem(item));
SetAutocompleteItems(list);
}
public void SetAutocompleteItems(IEnumerable<AutocompleteItem> items)
{
sourceItems = items;
}
public void AddItem(string item)
{
AddItem(new AutocompleteItem(item));
}
public void AddItem(AutocompleteItem item)
{
if (sourceItems == null)
sourceItems = new List<AutocompleteItem>();
if (sourceItems is IList)
(sourceItems as IList).Add(item);
else
throw new Exception("Current autocomplete items does not support adding");
}
/// <summary>
/// Shows popup menu immediately
/// </summary>
/// <param name="forced">If True - MinFragmentLength will be ignored</param>
public void Show(Control control, bool forced)
{
SetAutocompleteMenu(control, this);
this.TargetControlWrapper = FindWrapper(control);
ShowAutocomplete(forced);
}
internal virtual void OnSelecting()
{
if (SelectedItemIndex < 0 || SelectedItemIndex >= VisibleItems.Count)
return;
AutocompleteItem item = VisibleItems[SelectedItemIndex];
var args = new SelectingEventArgs
{
Item = item,
SelectedIndex = SelectedItemIndex
};
OnSelecting(args);
if (args.Cancel)
{
SelectedItemIndex = args.SelectedIndex;
(Host.ListView as Control).Invalidate(true);
return;
}
if (!args.Handled)
{
Range fragment = Fragment;
ApplyAutocomplete(item, fragment);
}
Close();
//
var args2 = new SelectedEventArgs
{
Item = item,
Control = TargetControlWrapper.TargetControl
};
item.OnSelected(args2);
OnSelected(args2);
}
private void ApplyAutocomplete(AutocompleteItem item, Range fragment)
{
string newText = item.GetTextForReplace();
//replace text of fragment
fragment.Text = newText;
fragment.TargetWrapper.TargetControl.Focus();
}
internal void OnSelecting(SelectingEventArgs args)
{
if (Selecting != null)
Selecting(this, args);
}
public void OnSelected(SelectedEventArgs args)
{
if (Selected != null)
Selected(this, args);
}
public void SetColumns(string[] columns, int[] columnsWidth = null)
{
ListView.ColumnsTitle = columns;
ListView.ColumnsWidth = columnsWidth;
}
public void SelectNext(int shift)
{
SelectedItemIndex = Math.Max(0, Math.Min(SelectedItemIndex + shift, VisibleItems.Count - 1));
//
(Host.ListView as Control).Invalidate();
}
public bool ProcessKey(char c, Keys keyModifiers)
{
var page = Host.Height / (Font.Height + 4);
if (keyModifiers == Keys.None)
switch ((Keys) c)
{
case Keys.Down:
SelectNext(+1);
return true;
case Keys.PageDown:
SelectNext(+page);
return true;
case Keys.Up:
SelectNext(-1);
return true;
case Keys.PageUp:
SelectNext(-page);
return true;
case Keys.Enter:
OnSelecting();
return true;
case Keys.Tab:
if (!AllowsTabKey)
break;
OnSelecting();
return true;
case Keys.Left:
case Keys.Right:
Close();
return false;
case Keys.Escape:
Close();
return true;
}
return false;
}
/// <summary>
/// Menu is visible
/// </summary>
public bool Visible
{
get { return Host != null && Host.Visible; }
}
}
}

View File

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

View File

@ -0,0 +1,98 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace AutocompleteMenuNS
{
[System.ComponentModel.ToolboxItem(false)]
internal class AutocompleteMenuHost : ToolStripDropDown
{
private IAutocompleteListView listView;
public ToolStripControlHost Host { get; set; }
public readonly AutocompleteMenu Menu;
public IAutocompleteListView ListView
{
get { return listView; }
set {
if(listView != null)
(listView as Control).LostFocus -= new EventHandler(ListView_LostFocus);
if (value == null)
listView = new AutocompleteListView();
else
{
if (!(value is Control))
throw new Exception("ListView must be derived from Control class");
listView = value;
}
Host = new ToolStripControlHost(ListView as Control);
Host.Margin = new Padding(2, 2, 2, 2);
Host.Padding = Padding.Empty;
Host.AutoSize = false;
Host.AutoToolTip = false;
(ListView as Control).MaximumSize = Menu.MaximumSize;
(ListView as Control).Size = Menu.MaximumSize;
(ListView as Control).LostFocus += new EventHandler(ListView_LostFocus);
CalcSize();
base.Items.Clear();
base.Items.Add(Host);
(ListView as Control).Parent = this;
}
}
public AutocompleteMenuHost(AutocompleteMenu menu)
{
AutoClose = false;
AutoSize = false;
Margin = Padding.Empty;
Padding = Padding.Empty;
Menu = menu;
ListView = new AutocompleteListView();
}
protected override void OnPaintBackground(PaintEventArgs e)
{
using (var brush = new SolidBrush(listView.Colors.BackColor))
e.Graphics.FillRectangle(brush, e.ClipRectangle);
}
internal void CalcSize()
{
Host.Size = (ListView as Control).Size;
Size = new System.Drawing.Size((ListView as Control).Size.Width + 4, (ListView as Control).Size.Height + 4);
}
public override RightToLeft RightToLeft
{
get
{
return base.RightToLeft;
}
set
{
base.RightToLeft = value;
(ListView as Control).RightToLeft = value;
}
}
protected override void OnLostFocus(EventArgs e)
{
base.OnLostFocus(e);
if(!(ListView as Control).Focused)
Close();
}
void ListView_LostFocus(object sender, EventArgs e)
{
if (!Focused)
Close();
}
}
}

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
namespace AutocompleteMenuNS
{
[Serializable]
public class Colors
{
public Color ForeColor { get; set; }
public Color BackColor { get; set; }
public Color SelectedForeColor { get; set; }
public Color SelectedBackColor { get; set; }
public Color SelectedBackColor2 { get; set; }
public Color HighlightingColor { get; set; }
public Colors()
{
ForeColor = Color.Black;
BackColor = Color.White;
SelectedForeColor = Color.Black;
SelectedBackColor = Color.Orange;
SelectedBackColor2 = Color.White;
HighlightingColor = Color.Orange;
}
}
}

View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace AutocompleteMenuNS
{
public class SelectingEventArgs : EventArgs
{
public AutocompleteItem Item { get; internal set; }
public bool Cancel { get; set; }
public int SelectedIndex { get; set; }
public bool Handled { get; set; }
}
public class SelectedEventArgs : EventArgs
{
public AutocompleteItem Item { get; internal set; }
public Control Control { get; set; }
}
public class HoveredEventArgs : EventArgs
{
public AutocompleteItem Item { get; internal set; }
}
public class PaintItemEventArgs : PaintEventArgs
{
public RectangleF TextRect { get; internal set; }
public StringFormat StringFormat { get; internal set; }
public Font Font { get; internal set; }
public bool IsSelected { get; internal set; }
public bool IsHovered { get; internal set; }
public Colors Colors { get; internal set; }
public PaintItemEventArgs(Graphics graphics, Rectangle clipRect):base(graphics, clipRect)
{
}
}
public class WrapperNeededEventArgs : EventArgs
{
public Control TargetControl { get; private set; }
public ITextBoxWrapper Wrapper { get; set; }
public WrapperNeededEventArgs(Control targetControl)
{
this.TargetControl = targetControl;
}
}
}

View File

@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace AutocompleteMenuNS
{
/// <summary>
/// Control for displaying menu items, hosted in AutocompleteMenu.
/// </summary>
public interface IAutocompleteListView
{
/// <summary>
/// Image list
/// </summary>
ImageList ImageList { get; set; }
string[] ColumnsTitle { get; set; }
int[] ColumnsWidth { get; set; }
/// <summary>
/// Index of current selected item
/// </summary>
int SelectedItemIndex { get; set; }
/// <summary>
/// Index of current selected item
/// </summary>
int HighlightedItemIndex { get; set; }
/// <summary>
/// List of visible elements
/// </summary>
IList<AutocompleteItem> VisibleItems { get;set;}
/// <summary>
/// Duration (ms) of tooltip showing
/// </summary>
int ToolTipDuration { get; set; }
/// <summary>
/// Occurs when user selected item for inserting into text
/// </summary>
event EventHandler ItemSelected;
/// <summary>
/// Occurs when current hovered item is changing
/// </summary>
event EventHandler<HoveredEventArgs> ItemHovered;
/// <summary>
/// Shows tooltip
/// </summary>
/// <param name="autocompleteItem"></param>
/// <param name="control"></param>
void ShowToolTip(AutocompleteItem autocompleteItem, Control control = null);
/// <summary>
/// Hides tooltip
/// </summary>
/// <param name="control"></param>
void HideToolTip(Control control);
/// <summary>
/// Returns rectangle of item
/// </summary>
Rectangle GetItemRectangle(int itemIndex);
/// <summary>
/// Colors
/// </summary>
Colors Colors { get; set; }
Control GetParentControl();
}
}

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace AutocompleteMenuNS
{
/// <summary>
/// Wrapper over the control like TextBox.
/// </summary>
public interface ITextBoxWrapper
{
Control TargetControl { get; }
string Text { get; }
string SelectedText { get; set; }
int SelectionLength { get; set; }
int SelectionStart { get; set; }
Point GetPositionFromCharIndex(int pos);
bool Readonly { get; }
event EventHandler LostFocus;
event ScrollEventHandler Scroll;
event KeyEventHandler KeyDown;
event MouseEventHandler MouseDown;
}
}

Some files were not shown because too many files have changed in this diff Show More