Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
HZH_Controls
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 7943276c
由
HZH
编写于
2019-08-15 11:11:18 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加显示样式
1 个父辈
977a19f3
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
99 行增加
和
35 行删除
HZH_Controls/HZH_Controls/Controls/Menu/UCMenu.cs
HZH_Controls/Test/Form1.cs
HZH_Controls/HZH_Controls/Controls/Menu/UCMenu.cs
查看文件 @
7943276
...
@@ -94,6 +94,16 @@ namespace HZH_Controls.Controls
...
@@ -94,6 +94,16 @@ namespace HZH_Controls.Controls
set
{
m_isShowFirstItem
=
value
;
}
set
{
m_isShowFirstItem
=
value
;
}
}
}
private
MenuStyle
m_menuStyle
=
MenuStyle
.
Fill
;
/// <summary>
/// 菜单样式
/// </summary>
public
MenuStyle
MenuStyle
{
get
{
return
m_menuStyle
;
}
set
{
m_menuStyle
=
value
;
}
}
private
List
<
Control
>
m_lstParentItems
=
new
List
<
Control
>();
private
List
<
Control
>
m_lstParentItems
=
new
List
<
Control
>();
private
IMenuItem
m_selectParentItem
=
null
;
private
IMenuItem
m_selectParentItem
=
null
;
...
@@ -125,10 +135,18 @@ namespace HZH_Controls.Controls
...
@@ -125,10 +135,18 @@ namespace HZH_Controls.Controls
}
}
}
}
m_panChildren
=
new
Panel
();
m_panChildren
=
new
Panel
();
m_panChildren
.
Dock
=
DockStyle
.
Fill
;
if
(
m_menuStyle
==
HZH_Controls
.
Controls
.
MenuStyle
.
Fill
)
{
m_panChildren
.
Dock
=
DockStyle
.
Fill
;
m_panChildren
.
Height
=
0
;
}
else
{
m_panChildren
.
Dock
=
DockStyle
.
Top
;
m_panChildren
.
Height
=
0
;
}
m_panChildren
.
AutoScroll
=
true
;
m_panChildren
.
AutoScroll
=
true
;
this
.
Controls
.
Add
(
m_panChildren
);
this
.
Controls
.
Add
(
m_panChildren
);
this
.
Controls
.
SetChildIndex
(
m_panChildren
,
0
);
}
}
finally
finally
{
{
...
@@ -143,6 +161,7 @@ namespace HZH_Controls.Controls
...
@@ -143,6 +161,7 @@ namespace HZH_Controls.Controls
void
parentItem_SelectedItem
(
object
sender
,
EventArgs
e
)
void
parentItem_SelectedItem
(
object
sender
,
EventArgs
e
)
{
{
this
.
FindForm
().
ActiveControl
=
this
;
IMenuItem
item
=
sender
as
IMenuItem
;
IMenuItem
item
=
sender
as
IMenuItem
;
if
(
m_lstParentItems
.
Contains
(
sender
as
Control
))
if
(
m_lstParentItems
.
Contains
(
sender
as
Control
))
{
{
...
@@ -186,45 +205,79 @@ namespace HZH_Controls.Controls
...
@@ -186,45 +205,79 @@ namespace HZH_Controls.Controls
try
try
{
{
ControlHelper
.
FreezeControl
(
this
,
true
);
ControlHelper
.
FreezeControl
(
this
,
true
);
if
(
blnChildren
)
if
(
m_menuStyle
==
HZH_Controls
.
Controls
.
MenuStyle
.
Fill
)
{
{
Control
cMenu
=
menuitem
as
Control
;
if
(
blnChildren
)
int
index
=
m_lstParentItems
.
IndexOf
(
cMenu
);
for
(
int
i
=
0
;
i
<=
index
;
i
++)
{
{
m_lstParentItems
[
i
].
Dock
=
DockStyle
.
Top
;
Control
cMenu
=
menuitem
as
Control
;
this
.
Controls
.
SetChildIndex
(
m_lstParentItems
[
i
],
1
);
int
index
=
m_lstParentItems
.
IndexOf
(
cMenu
);
for
(
int
i
=
0
;
i
<=
index
;
i
++)
{
m_lstParentItems
[
i
].
Dock
=
DockStyle
.
Top
;
this
.
Controls
.
SetChildIndex
(
m_lstParentItems
[
i
],
1
);
}
for
(
int
i
=
index
+
1
;
i
<
m_lstParentItems
.
Count
;
i
++)
{
m_lstParentItems
[
i
].
Dock
=
DockStyle
.
Bottom
;
this
.
Controls
.
SetChildIndex
(
m_lstParentItems
[
i
],
m_lstParentItems
.
Count
);
}
m_panChildren
.
Controls
.
Clear
();
int
intItemHeigth
=
0
;
foreach
(
var
item
in
menuitem
.
DataSource
.
Childrens
)
{
IMenuItem
parentItem
=
(
IMenuItem
)
Activator
.
CreateInstance
(
m_childrenItemType
);
parentItem
.
DataSource
=
item
;
if
(
m_childrenItemStyles
!=
null
)
parentItem
.
SetStyle
(
m_childrenItemStyles
);
parentItem
.
SelectedItem
+=
parentItem_SelectedItem
;
Control
c
=
parentItem
as
Control
;
if
(
intItemHeigth
==
0
)
intItemHeigth
=
c
.
Height
;
c
.
Dock
=
DockStyle
.
Top
;
m_panChildren
.
Controls
.
Add
(
c
);
m_panChildren
.
Controls
.
SetChildIndex
(
c
,
0
);
}
//m_panChildren.MinimumSize = new Size(0, menuitem.DataSource.Childrens.Count * intItemHeigth);
}
}
for
(
int
i
=
index
+
1
;
i
<
m_lstParentItems
.
Count
;
i
++)
else
{
{
m_lstParentItems
[
i
].
Dock
=
DockStyle
.
Bottom
;
m_panChildren
.
Controls
.
Clear
();
this
.
Controls
.
SetChildIndex
(
m_lstParentItems
[
i
],
m_lstParentItems
.
Count
);
foreach
(
var
item
in
m_lstParentItems
)
{
item
.
Dock
=
DockStyle
.
Top
;
this
.
Controls
.
SetChildIndex
(
item
,
1
);
}
}
}
m_panChildren
.
Controls
.
Clear
();
int
intItemHeigth
=
0
;
foreach
(
var
item
in
menuitem
.
DataSource
.
Childrens
)
{
IMenuItem
parentItem
=
(
IMenuItem
)
Activator
.
CreateInstance
(
m_childrenItemType
);
parentItem
.
DataSource
=
item
;
if
(
m_childrenItemStyles
!=
null
)
parentItem
.
SetStyle
(
m_childrenItemStyles
);
parentItem
.
SelectedItem
+=
parentItem_SelectedItem
;
Control
c
=
parentItem
as
Control
;
if
(
intItemHeigth
==
0
)
intItemHeigth
=
c
.
Height
;
c
.
Dock
=
DockStyle
.
Top
;
m_panChildren
.
Controls
.
Add
(
c
);
m_panChildren
.
Controls
.
SetChildIndex
(
c
,
0
);
}
//m_panChildren.MinimumSize = new Size(0, menuitem.DataSource.Childrens.Count * intItemHeigth);
}
}
else
else
{
{
m_panChildren
.
Controls
.
Clear
();
if
(
blnChildren
)
foreach
(
var
item
in
m_lstParentItems
)
{
{
item
.
Dock
=
DockStyle
.
Top
;
Control
cMenu
=
menuitem
as
Control
;
this
.
Controls
.
SetChildIndex
(
item
,
1
);
int
index
=
m_lstParentItems
.
IndexOf
(
cMenu
);
this
.
Controls
.
SetChildIndex
(
m_panChildren
,
m_lstParentItems
.
Count
-
index
-
1
);
m_panChildren
.
Controls
.
Clear
();
int
intItemHeigth
=
0
;
foreach
(
var
item
in
menuitem
.
DataSource
.
Childrens
)
{
IMenuItem
parentItem
=
(
IMenuItem
)
Activator
.
CreateInstance
(
m_childrenItemType
);
parentItem
.
DataSource
=
item
;
if
(
m_childrenItemStyles
!=
null
)
parentItem
.
SetStyle
(
m_childrenItemStyles
);
parentItem
.
SelectedItem
+=
parentItem_SelectedItem
;
Control
c
=
parentItem
as
Control
;
if
(
intItemHeigth
==
0
)
intItemHeigth
=
c
.
Height
;
c
.
Dock
=
DockStyle
.
Top
;
m_panChildren
.
Controls
.
Add
(
c
);
m_panChildren
.
Controls
.
SetChildIndex
(
c
,
0
);
}
m_panChildren
.
Height
=
menuitem
.
DataSource
.
Childrens
.
Count
*
intItemHeigth
;
}
else
{
m_panChildren
.
Controls
.
Clear
();
m_panChildren
.
Height
=
0
;
}
}
}
}
}
}
...
@@ -240,5 +293,16 @@ namespace HZH_Controls.Controls
...
@@ -240,5 +293,16 @@ namespace HZH_Controls.Controls
}
}
}
}
public
enum
MenuStyle
{
/// <summary>
/// 平铺
/// </summary>
Fill
=
1
,
/// <summary>
/// 顶部对齐
/// </summary>
Top
=
2
,
}
}
}
HZH_Controls/Test/Form1.cs
查看文件 @
7943276
...
@@ -66,7 +66,7 @@ namespace Test
...
@@ -66,7 +66,7 @@ namespace Test
this
.
ucHorizontalList1
.
DataSource
=
lstHL
;
this
.
ucHorizontalList1
.
DataSource
=
lstHL
;
List
<
MenuItemEntity
>
lstMenu
=
new
List
<
MenuItemEntity
>();
List
<
MenuItemEntity
>
lstMenu
=
new
List
<
MenuItemEntity
>();
for
(
int
i
=
0
;
i
<
5
;
i
++)
for
(
int
i
=
0
;
i
<
20
;
i
++)
{
{
MenuItemEntity
item
=
new
MenuItemEntity
()
MenuItemEntity
item
=
new
MenuItemEntity
()
{
{
...
@@ -75,7 +75,7 @@ namespace Test
...
@@ -75,7 +75,7 @@ namespace Test
DataSource
=
"这里编写一些自定义的数据源,用于扩展"
DataSource
=
"这里编写一些自定义的数据源,用于扩展"
};
};
item
.
Childrens
=
new
List
<
MenuItemEntity
>();
item
.
Childrens
=
new
List
<
MenuItemEntity
>();
for
(
int
j
=
0
;
j
<
5
;
j
++)
for
(
int
j
=
0
;
j
<
20
;
j
++)
{
{
MenuItemEntity
item2
=
new
MenuItemEntity
()
MenuItemEntity
item2
=
new
MenuItemEntity
()
{
{
...
@@ -87,7 +87,7 @@ namespace Test
...
@@ -87,7 +87,7 @@ namespace Test
}
}
lstMenu
.
Add
(
item
);
lstMenu
.
Add
(
item
);
}
}
this
.
ucMenu1
.
ChildrenItemStyles
=
new
Dictionary
<
string
,
object
>()
{
{
"BackColor"
,
Color
.
Yellow
}
};
this
.
ucMenu1
.
MenuStyle
=
MenuStyle
.
Top
;
this
.
ucMenu1
.
DataSource
=
lstMenu
;
this
.
ucMenu1
.
DataSource
=
lstMenu
;
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论