1
using System;2
using System.Collections.Generic;3
using System.ComponentModel;4
using System.Drawing;5
using System.Data;6
using System.Text;7
using System.Windows.Forms;8

9
namespace Panel_Karose.Net10


{11
public partial class Panel_Karose : UserControl12

{ 13
private int pic_ToRight=4;14
private bool bl_MouseDown = false; //鼠标是否按下15
private bool bl_Dragable = false; //控件是否允许拖动16

17
public Panel_Karose()18

{19
InitializeComponent();20
}21

22
private void Panel_Karose_Load(object sender, EventArgs e)23

{ 24
panel_Title.Left = 1;25
// panel_Title.Top = 1; 26
panel_Contain.Left = 1;27
this.BackColor = MyBorderColor;28
pic_Operation.BackgroundImage = panel_Title.BackgroundImage;29
Controls_Resize();30
} 31

32
//调整各控件大小33
private void Controls_Resize()34

{ 35
panel_Title.Width = this.Width - 2;36
if (panel_Title.Top <= 0)37
panel_Contain.Top = 1;38
else39
panel_Contain.Top = panel_Title.Top + panel_Title.Height + 1;40
panel_Contain.Width = this.Width - 2;41
panel_Contain.Height = this.Height - panel_Contain.Top - 1; 42
pic_Operation.Left = panel_Title.Width - pic_Operation.Width - Pic_ToRight;43
}44

45
private void Panel_Karose_Resize(object sender, EventArgs e)46

{47
Controls_Resize();48
}49
50

控件属性#region 控件属性51
[52
Browsable(true),53
CategoryAttribute("本控件的自定义属性"),54
Description("设置标题栏背景色")55
]56
public Color Title_BackColor57

{58

set
{ panel_Title.BackColor = value; }59

get
{ return panel_Title.BackColor; }60
}61

62
[63
Browsable(true),64
CategoryAttribute("本控件的自定义属性"),65
Description("设置容器栏的背景色")66
]67
public Color Contain_BackColor68

{69

set
{ panel_Contain.BackColor = value; }70

get
{ return panel_Contain.BackColor; }71
}72

73
[74
Browsable(true),75
CategoryAttribute("本控件的自定义属性"),76
Description("设置边框颜色")77
]78
public Color MyBorderColor79

{80

set
{ this.BackColor = value; }81

get
{ return this.BackColor; }82
}83

84
[85
Browsable(true),86
CategoryAttribute("本控件的自定义属性"),87
Description("设置标题栏背景图片")88
]89
public Image Title_BackImage90

{91

set
{ panel_Title.BackgroundImage = value; }92

get
{ return panel_Title.BackgroundImage; }93
}94

95
[96
Browsable(true),97
CategoryAttribute("本控件的自定义属性"),98
Description("设置标题栏的高度")99
]100
public int Title_Height101

{102
set 103

{104
if (value == 0)105

{106
panel_Title.Top = 0 - panel_Title.Height;107
panel_Title.Height = 0;108
}109
else110

{111
if (value > this.Height - 2)112

{113
panel_Title.Top = 1;114
panel_Title.Height = this.Height - 2; 115
}116
else117

{118
panel_Title.Top = 1;119
panel_Title.Height = value; 120
}121
} 122
Controls_Resize();123
}124

get
{ return panel_Title.Height ; }125
}126

127
[128
Browsable(true),129
CategoryAttribute("本控件的自定义属性"),130
Description("设置操作按钮的宽度")131
]132
public int Pic_OptWidth133

{134

set
{ pic_Operation.Width = value; }135

get
{ return pic_Operation.Width; }136
}137

138
[139
Browsable(true),140
CategoryAttribute("本控件的自定义属性"),141
Description("设置操作按钮的高度")142
]143
public int Pic_OptHeight144

{145

set
{ pic_Operation.Height = value; }146

get
{ return pic_Operation.Height; }147
}148

149
[150
Browsable(true),151
CategoryAttribute("本控件的自定义属性"),152
Description("设置操作按钮是否可用")153
]154
public bool Opt_Visible155

{156

set
{ pic_Operation.Visible = value; }157

get
{ return pic_Operation.Visible; }158
}159

160
[161
Browsable(true),162
CategoryAttribute("本控件的自定义属性"),163
Description("设置操作按钮的图片")164
]165
public Image Pic_Operation166

{167

set
{ pic_Operation.Image = value; }168

get
{ return pic_Operation.Image; }169
}170

171
[172
Browsable(true),173
CategoryAttribute("本控件的自定义属性"),174
Description("设置操作按钮鼠标经过时的图片")175
]176
public Image Pic_Operation_MM177

{178

set
{ pic_Operation_MM.Image = value; }179

get
{ return pic_Operation_MM.Image; }180
}181

182
[183
Browsable(true),184
CategoryAttribute("本控件的自定义属性"),185
Description("设置操作按钮鼠标按下时的图片")186
]187
public Image Pic_Operation_MD188

{189

set
{ pic_Operation_MD.Image = value; }190

get
{ return pic_Operation_MD.Image; }191
}192

193
[194
Browsable(true),195
CategoryAttribute("本控件的自定义属性"),196
Description("设置操作按钮鼠标放开后的图片")197
]198
public Image Pic_Operation_MU199

{200

set
{ pic_Operation_MU.Image = value; }201

get
{ return pic_Operation_MU.Image; }202
}203

204
[205
Browsable(true),206
CategoryAttribute("本控件的自定义属性"),207
Description("设置操作按钮距容器上边框的数值")208
]209
public int Pic_ToTop210

{211

set
{ pic_Operation.Top = value; }212

get
{ return pic_Operation.Top; }213
}214

215
[216
Browsable(true),217
CategoryAttribute("本控件的自定义属性"),218
Description("设置操作按钮距容器右边框的数值")219
]220
public int Pic_ToRight221

{222

set
{ pic_Operation.Left = panel_Title.Width - pic_Operation.Width - value; pic_ToRight = value; }223

get
{ return pic_ToRight; }224
}225

226
[227
Browsable(true),228
CategoryAttribute("本控件的自定义属性"),229
Description("设置控件是否可以拖动")230
]231
public bool Dragable232

{233

set
{ bl_Dragable = value; }234

get
{ return bl_Dragable; }235
}236

237
[238
Browsable(true),239
CategoryAttribute("本控件的自定义属性"),240
Description("设置容器栏的背景图片")241
]242
public Image Contain_BG_Image243

{244

set
{ panel_Contain.BackgroundImage = value; }245

get
{ return panel_Contain.BackgroundImage; }246
}247

248
#endregion249
250
251

点击图片操作按钮所触发的事件#region 点击图片操作按钮所触发的事件 252
//253
public delegate void Pic_OptClickEventHandler(object sender,EventArgs args);254
public event Pic_OptClickEventHandler OptClicked;255
private void OnOptClicked(object sender,EventArgs args)256

{257
if(OptClicked!=null)258

{259
OptClicked(sender,args);260
}261
}262
private void pic_Operation_Click(object sender, EventArgs e)263

{264
OnOptClicked(this, new EventArgs());265
}266

267
private void pic_Operation_MouseMove(object sender, MouseEventArgs e)268

{269
if (!bl_MouseDown)270
pic_Operation.Image = pic_Operation_MM.Image;271
}272

273
private void pic_Operation_MouseLeave(object sender, EventArgs e)274

{275
pic_Operation.Image = pic_Operation_MU.Image;276
}277

278
private void pic_Operation_MouseUp(object sender, MouseEventArgs e)279

{280
pic_Operation.Image = pic_Operation_MU.Image;281
bl_MouseDown = false;282
}283

284
private void pic_Operation_MouseDown(object sender, MouseEventArgs e)285

{286
bl_MouseDown = true;287
pic_Operation.Image = pic_Operation_MD.Image;288
}289
//290
#endregion291

292

控件拖动所触发的事件#region 控件拖动所触发的事件293
//294
public delegate void DragEventHandler(object sender,EventArgs args);295
public event DragEventHandler ControlDrag; //拖动控件的事件296
public event DragEventHandler DragMouseDown; //控件上按下鼠标时的事件(用于确定拖动之前光标在控件内的坐标)297
298
private void OnControlDrag(object sender, EventArgs args)299

{300
if (ControlDrag != null)301
ControlDrag(sender, args);302
}303

304
private void OnDragMouseDown(object sender, EventArgs args)305

{306
if (DragMouseDown != null)307
DragMouseDown(sender, args);308
}309

310
private void panel_Title_MouseMove(object sender, MouseEventArgs e)311

{312
if (bl_MouseDown)313
OnControlDrag(this, new EventArgs());314
}315

316
private void panel_Title_MouseDown(object sender, MouseEventArgs e)317

{318
if (bl_Dragable)319

{320
bl_MouseDown = true;321
panel_Title.Cursor = Cursors.SizeAll;322
OnDragMouseDown(sender, new EventArgs());323
}324
}325

326
private void panel_Title_MouseUp(object sender, MouseEventArgs e)327

{328
bl_MouseDown = false;329
panel_Title.Cursor = Cursors.Default;330
}331

332
#endregion333
}334
}
浙公网安备 33010602011771号