Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
HZH_Controls
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit e1ec15b0
由
HZH
编写于
2019-09-10 09:37:53 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加警灯
1 个父辈
a29fb918
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
180 行增加
和
1 行删除
HZH_Controls/HZH_Controls/Controls/FactoryControls/Lamp/UCAlarmLamp.cs
HZH_Controls/HZH_Controls/Controls/FactoryControls/Lamp/UCSignalLamp.cs
HZH_Controls/HZH_Controls/HZH_Controls.csproj
HZH_Controls/Test/Form4.Designer.cs
HZH_Controls/HZH_Controls/Controls/FactoryControls/Lamp/UCAlarmLamp.cs
0 → 100644
查看文件 @
e1ec15b
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 2019-09-10
//
// ***********************************************************************
// <copyright file="UCAlarmLamp.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHub:https://github.com/kwwwvagaa/NetWinformControl
// gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Windows.Forms
;
using
System.Drawing
;
using
System.Drawing.Drawing2D
;
using
System.ComponentModel
;
namespace
HZH_Controls.Controls
{
/// <summary>
/// Class UCAlarmLamp.
/// Implements the <see cref="System.Windows.Forms.UserControl" />
/// </summary>
/// <seealso cref="System.Windows.Forms.UserControl" />
public
class
UCAlarmLamp
:
UserControl
{
/// <summary>
/// The lamp color
/// </summary>
private
Color
[]
lampColor
=
new
Color
[]
{
Color
.
FromArgb
(
255
,
77
,
59
)
};
/// <summary>
/// Gets or sets the color of the lamp.
/// </summary>
/// <value>The color of the lamp.</value>
[
Description
(
"灯颜色,当需要闪烁时,至少需要2个及以上颜色,不需要闪烁则至少需要1个颜色"
),
Category
(
"自定义"
)]
public
Color
[]
LampColor
{
get
{
return
lampColor
;
}
set
{
if
(
value
==
null
||
value
.
Length
<=
0
)
return
;
lampColor
=
value
;
Refresh
();
}
}
/// <summary>
/// The lampstand
/// </summary>
private
Color
lampstand
=
Color
.
FromArgb
(
105
,
105
,
105
);
/// <summary>
/// Gets or sets the lampstand.
/// </summary>
/// <value>The lampstand.</value>
public
Color
Lampstand
{
get
{
return
lampstand
;
}
set
{
lampstand
=
value
;
}
}
/// <summary>
/// The twinkle speed
/// </summary>
private
int
twinkleSpeed
=
0
;
/// <summary>
/// Gets or sets the twinkle speed.
/// </summary>
/// <value>The twinkle speed.</value>
[
Description
(
"闪烁间隔时间(毫秒),当为0时不闪烁"
),
Category
(
"自定义"
)]
public
int
TwinkleSpeed
{
get
{
return
twinkleSpeed
;
}
set
{
if
(
value
<
0
)
return
;
twinkleSpeed
=
value
;
if
(
value
==
0
||
lampColor
.
Length
<=
1
)
{
timer
.
Enabled
=
false
;
}
else
{
intColorIndex
=
0
;
timer
.
Interval
=
value
;
timer
.
Enabled
=
true
;
}
Refresh
();
}
}
/// <summary>
/// The timer
/// </summary>
Timer
timer
;
/// <summary>
/// The int color index
/// </summary>
int
intColorIndex
=
0
;
/// <summary>
/// The m rect working
/// </summary>
Rectangle
m_rectWorking
;
/// <summary>
/// Initializes a new instance of the <see cref="UCAlarmLamp"/> class.
/// </summary>
public
UCAlarmLamp
()
{
this
.
SetStyle
(
ControlStyles
.
AllPaintingInWmPaint
,
true
);
this
.
SetStyle
(
ControlStyles
.
DoubleBuffer
,
true
);
this
.
SetStyle
(
ControlStyles
.
ResizeRedraw
,
true
);
this
.
SetStyle
(
ControlStyles
.
Selectable
,
true
);
this
.
SetStyle
(
ControlStyles
.
SupportsTransparentBackColor
,
true
);
this
.
SetStyle
(
ControlStyles
.
UserPaint
,
true
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
None
;
this
.
SizeChanged
+=
UCAlarmLamp_SizeChanged
;
this
.
Size
=
new
Size
(
50
,
50
);
timer
=
new
Timer
();
timer
.
Interval
=
200
;
timer
.
Tick
+=
timer_Tick
;
}
/// <summary>
/// Handles the SizeChanged event of the UCAlarmLamp control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
void
UCAlarmLamp_SizeChanged
(
object
sender
,
EventArgs
e
)
{
m_rectWorking
=
new
Rectangle
(
10
,
0
,
this
.
Width
-
20
,
this
.
Height
);
}
/// <summary>
/// Handles the Tick event of the timer control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
void
timer_Tick
(
object
sender
,
EventArgs
e
)
{
intColorIndex
++;
if
(
intColorIndex
>=
lampColor
.
Length
)
intColorIndex
=
0
;
Refresh
();
}
/// <summary>
/// 引发 <see cref="E:System.Windows.Forms.Control.Paint" /> 事件。
/// </summary>
/// <param name="e">包含事件数据的 <see cref="T:System.Windows.Forms.PaintEventArgs" />。</param>
protected
override
void
OnPaint
(
PaintEventArgs
e
)
{
base
.
OnPaint
(
e
);
var
g
=
e
.
Graphics
;
g
.
SetGDIHigh
();
Color
c1
=
lampColor
[
intColorIndex
];
GraphicsPath
path
=
new
GraphicsPath
();
path
.
AddLine
(
new
Point
(
m_rectWorking
.
Left
,
m_rectWorking
.
Bottom
),
new
Point
(
m_rectWorking
.
Left
,
m_rectWorking
.
Top
+
m_rectWorking
.
Width
));
path
.
AddArc
(
new
Rectangle
(
m_rectWorking
.
Left
,
m_rectWorking
.
Top
,
m_rectWorking
.
Width
,
m_rectWorking
.
Width
),
180f
,
180f
);
path
.
AddLine
(
new
Point
(
m_rectWorking
.
Right
,
m_rectWorking
.
Top
+
m_rectWorking
.
Width
),
new
Point
(
m_rectWorking
.
Right
,
m_rectWorking
.
Bottom
));
path
.
CloseAllFigures
();
g
.
FillPath
(
new
SolidBrush
(
c1
),
path
);
g
.
FillRectangle
(
new
SolidBrush
(
lampstand
),
new
Rectangle
(
5
,
m_rectWorking
.
Bottom
-
19
,
this
.
Width
-
10
,
10
));
g
.
FillRectangle
(
new
SolidBrush
(
lampstand
),
new
Rectangle
(
0
,
m_rectWorking
.
Bottom
-
10
,
this
.
Width
,
10
));
}
}
}
HZH_Controls/HZH_Controls/Controls/FactoryControls/Lamp/UCSignalLamp.cs
查看文件 @
e1ec15b
...
@@ -22,7 +22,7 @@ using System.Drawing;
...
@@ -22,7 +22,7 @@ using System.Drawing;
using
System.Drawing.Drawing2D
;
using
System.Drawing.Drawing2D
;
using
System.ComponentModel
;
using
System.ComponentModel
;
namespace
HZH_Controls.Controls
.FactoryControls.Lamp
namespace
HZH_Controls.Controls
{
{
/// <summary>
/// <summary>
/// Class UCSignalLamp.
/// Class UCSignalLamp.
...
...
HZH_Controls/HZH_Controls/HZH_Controls.csproj
查看文件 @
e1ec15b
...
@@ -103,6 +103,9 @@
...
@@ -103,6 +103,9 @@
<Compile Include="Controls\FactoryControls\Conveyor\UCConveyor.cs">
<Compile Include="Controls\FactoryControls\Conveyor\UCConveyor.cs">
<SubType>UserControl</SubType>
<SubType>UserControl</SubType>
</Compile>
</Compile>
<Compile Include="Controls\FactoryControls\Lamp\UCAlarmLamp.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\FactoryControls\Lamp\UCSignalLamp.cs">
<Compile Include="Controls\FactoryControls\Lamp\UCSignalLamp.cs">
<SubType>UserControl</SubType>
<SubType>UserControl</SubType>
</Compile>
</Compile>
...
...
HZH_Controls/Test/Form4.Designer.cs
查看文件 @
e1ec15b
此文件的差异被折叠,
点击展开。
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论