Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
HZH_Controls
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5fded8fc
由
HZH
编写于
2019-08-27 09:17:21 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
add tabControl closeBtn
1 个父辈
2666394f
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
64 行增加
和
0 行删除
HZH_Controls/HZH_Controls/Controls/Tab/TabControlExt.cs
HZH_Controls/Test/FrmOKCancel1Test.Designer.cs
HZH_Controls/Test/FrmOKCancel1Test.cs
HZH_Controls/HZH_Controls/Controls/Tab/TabControlExt.cs
查看文件 @
5fded8f
...
...
@@ -21,6 +21,10 @@ namespace HZH_Controls.Controls
this
.
ItemSize
=
new
Size
(
this
.
ItemSize
.
Width
,
50
);
}
private
void
SetStyles
()
{
base
.
SetStyle
(
...
...
@@ -32,6 +36,8 @@ namespace HZH_Controls.Controls
ControlStyles
.
SupportsTransparentBackColor
,
true
);
base
.
UpdateStyles
();
}
[
Description
(
"是否显示关闭按钮"
),
Category
(
"自定义"
)]
public
bool
IsShowCloseBtn
{
get
;
set
;
}
private
Color
_backColor
=
Color
.
White
;
[
Browsable
(
true
)]
...
...
@@ -172,6 +178,12 @@ namespace HZH_Controls.Controls
this
.
PaintTabBorder
(
e
.
Graphics
,
index
,
path
);
this
.
PaintTabText
(
e
.
Graphics
,
index
);
this
.
PaintTabImage
(
e
.
Graphics
,
index
);
if
(
IsShowCloseBtn
)
{
Rectangle
rect
=
this
.
GetTabRect
(
index
);
e
.
Graphics
.
DrawLine
(
new
Pen
(
_borderColor
,
1F
),
new
Point
(
rect
.
Right
-
15
,
rect
.
Top
+
5
),
new
Point
(
rect
.
Right
-
5
,
rect
.
Top
+
15
));
e
.
Graphics
.
DrawLine
(
new
Pen
(
_borderColor
,
1F
),
new
Point
(
rect
.
Right
-
5
,
rect
.
Top
+
5
),
new
Point
(
rect
.
Right
-
15
,
rect
.
Top
+
15
));
}
}
/// <summary>
...
...
@@ -346,5 +358,50 @@ namespace HZH_Controls.Controls
SendMessage
(
this
.
Handle
,
WM_FONTCHANGE
,
IntPtr
.
Zero
,
IntPtr
.
Zero
);
this
.
UpdateStyles
();
}
protected
override
void
WndProc
(
ref
Message
m
)
{
if
(
m
.
Msg
==
0x0201
)
// WM_LBUTTONDOWN
{
if
(!
DesignMode
)
{
if
(
IsShowCloseBtn
)
{
var
mouseLocation
=
this
.
PointToClient
(
Control
.
MousePosition
);
int
index
=
GetMouseDownTabHead
(
mouseLocation
);
if
(
index
>=
0
)
{
Rectangle
rect
=
this
.
GetTabRect
(
index
);
var
closeRect
=
new
Rectangle
(
rect
.
Right
-
15
,
rect
.
Top
+
5
,
10
,
10
);
if
(
closeRect
.
Contains
(
mouseLocation
))
{
this
.
TabPages
.
RemoveAt
(
index
);
return
;
}
}
}
}
}
base
.
WndProc
(
ref
m
);
}
public
override
bool
PreProcessMessage
(
ref
Message
msg
)
{
return
base
.
PreProcessMessage
(
ref
msg
);
}
private
int
GetMouseDownTabHead
(
Point
point
)
{
for
(
int
i
=
0
;
i
<
this
.
TabCount
;
i
++)
{
Rectangle
rect
=
this
.
GetTabRect
(
i
);
if
(
rect
.
Contains
(
point
))
{
return
i
;
}
}
return
-
1
;
}
}
}
HZH_Controls/Test/FrmOKCancel1Test.Designer.cs
查看文件 @
5fded8f
...
...
@@ -59,6 +59,7 @@
this
.
tabControlExt1
.
Controls
.
Add
(
this
.
tabPage5
);
this
.
tabControlExt1
.
Controls
.
Add
(
this
.
tabPage6
);
this
.
tabControlExt1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
tabControlExt1
.
IsShowCloseBtn
=
true
;
this
.
tabControlExt1
.
ItemSize
=
new
System
.
Drawing
.
Size
(
142
,
50
);
this
.
tabControlExt1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
tabControlExt1
.
Multiline
=
true
;
...
...
@@ -67,6 +68,7 @@
this
.
tabControlExt1
.
Size
=
new
System
.
Drawing
.
Size
(
528
,
321
);
this
.
tabControlExt1
.
SizeMode
=
System
.
Windows
.
Forms
.
TabSizeMode
.
FillToRight
;
this
.
tabControlExt1
.
TabIndex
=
0
;
this
.
tabControlExt1
.
KeyDown
+=
new
System
.
Windows
.
Forms
.
KeyEventHandler
(
this
.
tabControlExt1_KeyDown
);
//
// tabPage7
//
...
...
HZH_Controls/Test/FrmOKCancel1Test.cs
查看文件 @
5fded8f
...
...
@@ -15,5 +15,10 @@ namespace Test
{
InitializeComponent
();
}
private
void
tabControlExt1_KeyDown
(
object
sender
,
KeyEventArgs
e
)
{
}
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论