Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
HZH_Controls
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f61ac6a1
由
kwwwvagaa
编写于
2020-07-02 14:14:01 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
滚动条支持datagridview
1 个父辈
1202db0c
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
42 行增加
和
316 行删除
HZH_Controls/HZH_Controls/Controls/ScrollBar/ScrollbarComponent.cs
HZH_Controls/HZH_Controls/Helpers/ControlHelper.cs
HZH_Controls/Test/FrmMain.cs
HZH_Controls/Test/Test.csproj
HZH_Controls/Test/UC/UCTestNewBar.Designer.cs
HZH_Controls/Test/UC/UCTestNewBar.cs
HZH_Controls/Test/UC/UCTestNewBar.resx
HZH_Controls/HZH_Controls/Controls/ScrollBar/ScrollbarComponent.cs
查看文件 @
f61ac6a
此文件的差异被折叠,
点击展开。
HZH_Controls/HZH_Controls/Helpers/ControlHelper.cs
查看文件 @
f61ac6a
...
...
@@ -1340,17 +1340,17 @@ namespace HZH_Controls
[
DllImport
(
"user32.dll"
,
EntryPoint
=
"PostMessage"
)]
private
static
extern
bool
PostMessage
(
IntPtr
handle
,
int
msg
,
uint
wParam
,
uint
lParam
);
[
DllImport
(
"User32.dll"
,
EntryPoint
=
"SendMessage"
)]
[
DllImport
(
"User32.dll"
,
EntryPoint
=
"SendMessage"
)]
private
static
extern
int
SendMessage
(
IntPtr
hWnd
,
int
Msg
,
int
wParam
,
int
lParam
);
/// <summary>
/// ShowScrollBar
/// </summary>
/// <param name="hWnd">hWnd</param>
/// <param name="wBar">0:horizontal,1:vertical,3:both</param>
/// <param name="bShow">bShow</param>
/// <returns></returns>
[
DllImport
(
"user32.dll"
)]
[
return
:
MarshalAs
(
UnmanagedType
.
Bool
)]
/// <summary>
/// ShowScrollBar
/// </summary>
/// <param name="hWnd">hWnd</param>
/// <param name="wBar">0:horizontal,1:vertical,3:both</param>
/// <param name="bShow">bShow</param>
/// <returns></returns>
[
DllImport
(
"user32.dll"
)]
[
return
:
MarshalAs
(
UnmanagedType
.
Bool
)]
public
static
extern
bool
ShowScrollBar
(
IntPtr
hWnd
,
int
wBar
,
bool
bShow
);
/// <summary>
///获取水平滚动条信息
...
...
@@ -1424,39 +1424,39 @@ namespace HZH_Controls
{
return
(
ushort
)
lowPart
|
(
uint
)(
highPart
<<
16
);
}
/// <summary>
/// 控件向上滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollUp
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_VSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINEUP
,
0
);
}
/// <summary>
/// 控件向下滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollDown
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_VSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINEDOWN
,
0
);
/// <summary>
/// 控件向上滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollUp
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_VSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINEUP
,
0
);
}
/// <summary>
/// 控件向下滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollDown
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_VSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINEDOWN
,
0
);
}
/// <summary>
/// 控件向左滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollLeft
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_HSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINELEFT
,
0
);
}
/// <summary>
/// 控件向左滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollLeft
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_HSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINELEFT
,
0
);
}
/// <summary>
/// 控件向右滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollRight
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_VSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINERIGHT
,
0
);
/// <summary>
/// 控件向右滚动一个单位
/// </summary>
/// <param name="handle">控件句柄</param>
public
static
void
ScrollRight
(
IntPtr
handle
)
{
SendMessage
(
handle
,
(
int
)
ScrollInfoMask
.
WM_VSCROLL
,
(
int
)
ScrollInfoMask
.
SB_LINERIGHT
,
0
);
}
#
endregion
...
...
HZH_Controls/Test/FrmMain.cs
查看文件 @
f61ac6a
...
...
@@ -38,7 +38,6 @@ namespace Test
this
.
tvMenu
.
Nodes
.
Add
(
tnForm
);
TreeNode
tnControl
=
new
TreeNode
(
" 控件"
);
tnControl
.
Nodes
.
Add
(
"滚动条1"
);
tnControl
.
Nodes
.
Add
(
"表单控件"
);
tnControl
.
Nodes
.
Add
(
"按钮"
);
tnControl
.
Nodes
.
Add
(
"选项卡"
);
...
...
@@ -196,9 +195,6 @@ namespace Test
#
endregion
#
region
控件
English
:
control
case
"滚动条1"
:
AddControl
(
new
UC
.
UCTestNewBar
());
break
;
case
"表单控件"
:
AddControl
(
new
UC
.
UCTestForms
());
break
;
...
...
HZH_Controls/Test/Test.csproj
查看文件 @
f61ac6a
...
...
@@ -500,12 +500,6 @@
<Compile Include="UC\UCTestNavigationMenuOfficeItem.Designer.cs">
<DependentUpon>UCTestNavigationMenuOfficeItem.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestNewBar.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestNewBar.Designer.cs">
<DependentUpon>UCTestNewBar.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestPage.cs">
<SubType>UserControl</SubType>
</Compile>
...
...
@@ -888,9 +882,6 @@
<EmbeddedResource Include="UC\UCTestNavigationMenuOfficeItem.resx">
<DependentUpon>UCTestNavigationMenuOfficeItem.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestNewBar.resx">
<DependentUpon>UCTestNewBar.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestPage.resx">
<DependentUpon>UCTestPage.cs</DependentUpon>
</EmbeddedResource>
...
...
HZH_Controls/Test/UC/UCTestNewBar.Designer.cs
deleted
100644 → 0
查看文件 @
1202db0
namespace
Test.UC
{
partial
class
UCTestNewBar
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
listBox1
=
new
System
.
Windows
.
Forms
.
ListBox
();
this
.
scrollbarComponent1
=
new
HZH_Controls
.
Controls
.
ScrollbarComponent
(
this
.
components
);
this
.
SuspendLayout
();
//
// listBox1
//
this
.
listBox1
.
FormattingEnabled
=
true
;
this
.
listBox1
.
ItemHeight
=
12
;
this
.
listBox1
.
Items
.
AddRange
(
new
object
[]
{
"1"
,
"2"
,
"3"
,
"4"
,
"5"
,
"6"
,
"6"
,
"2"
,
"23"
,
"23"
,
"23"
,
"2323"
,
"32"
,
"32"
,
"32"
,
"3"
,
"23"
,
"2"
,
"3"
,
"32"
,
"32"
,
"23"
,
"23"
,
"2"
,
"23"
,
"23"
,
"23"
,
"23"
,
"23"
,
"23"
,
"2"
,
"3"
,
"2"
,
"23"
,
"1"
,
"3"
,
"2"
,
"r"
,
"rtf"
,
"f"
,
"2"
,
"f"
});
this
.
listBox1
.
Location
=
new
System
.
Drawing
.
Point
(
45
,
26
);
this
.
listBox1
.
Name
=
"listBox1"
;
this
.
listBox1
.
Size
=
new
System
.
Drawing
.
Size
(
222
,
280
);
this
.
listBox1
.
TabIndex
=
0
;
this
.
scrollbarComponent1
.
SetUserCustomScrollbar
(
this
.
listBox1
,
true
);
//
// UCTestNewBar
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
Controls
.
Add
(
this
.
listBox1
);
this
.
Name
=
"UCTestNewBar"
;
this
.
Size
=
new
System
.
Drawing
.
Size
(
941
,
601
);
this
.
ResumeLayout
(
false
);
}
#
endregion
private
System
.
Windows
.
Forms
.
ListBox
listBox1
;
private
HZH_Controls
.
Controls
.
ScrollbarComponent
scrollbarComponent1
;
}
}
HZH_Controls/Test/UC/UCTestNewBar.cs
deleted
100644 → 0
查看文件 @
1202db0
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Drawing
;
using
System.Data
;
using
System.Linq
;
using
System.Text
;
using
System.Windows.Forms
;
namespace
Test.UC
{
public
partial
class
UCTestNewBar
:
UserControl
{
public
UCTestNewBar
()
{
InitializeComponent
();
}
private
void
label20_Click
(
object
sender
,
EventArgs
e
)
{
this
.
ActiveControl
=
(
Control
)
sender
;
}
private
void
label2_Click
(
object
sender
,
EventArgs
e
)
{
this
.
ActiveControl
=
(
Control
)
sender
;
}
private
void
label1_Click
(
object
sender
,
EventArgs
e
)
{
}
}
}
HZH_Controls/Test/UC/UCTestNewBar.resx
deleted
100644 → 0
查看文件 @
1202db0
<?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>
<metadata name="scrollbarComponent1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论