@@ -71,6 +71,12 @@ public class QlibTabControl : TabControl
71
71
/// Selected tab text color
72
72
/// </summary>
73
73
public Color selectedTextColor = Color . FromArgb ( 255 , 255 , 255 ) ;
74
+
75
+ /// <summary>
76
+ /// Enable tab drag&drop
77
+ /// </summary>
78
+ public bool enableDragDrop = false ;
79
+
74
80
/// <summary>
75
81
/// Init
76
82
/// </summary>
@@ -86,6 +92,20 @@ public QlibTabControl()
86
92
AllowDrop = true ;
87
93
}
88
94
95
+ [ Category ( "Options" ) , Browsable ( true ) , Description ( "Enable tab drag&drop" ) ]
96
+ public bool EnableDragDrop
97
+ {
98
+ get
99
+ {
100
+ return this . enableDragDrop ;
101
+ }
102
+
103
+ set
104
+ {
105
+ this . enableDragDrop = value ;
106
+ }
107
+ }
108
+
89
109
[ Category ( "Colors" ) , Browsable ( true ) , Description ( "The color of the selected page" ) ]
90
110
public Color ActiveColor
91
111
{
@@ -240,16 +260,19 @@ protected override void CreateHandle()
240
260
/// <param name="drgevent"></param>
241
261
protected override void OnDragOver ( DragEventArgs drgevent )
242
262
{
243
- var draggedTab = ( TabPage ) drgevent . Data . GetData ( typeof ( TabPage ) ) ;
244
- var pointedTab = getPointedTab ( ) ;
245
-
246
- if ( ReferenceEquals ( draggedTab , predraggedTab ) && pointedTab != null )
263
+ if ( enableDragDrop )
247
264
{
248
- drgevent . Effect = DragDropEffects . Move ;
265
+ var draggedTab = ( TabPage ) drgevent . Data . GetData ( typeof ( TabPage ) ) ;
266
+ var pointedTab = getPointedTab ( ) ;
249
267
250
- if ( ! ReferenceEquals ( pointedTab , draggedTab ) )
268
+ if ( ReferenceEquals ( draggedTab , predraggedTab ) && pointedTab != null )
251
269
{
252
- this . ReplaceTabPages ( draggedTab , pointedTab ) ;
270
+ drgevent . Effect = DragDropEffects . Move ;
271
+
272
+ if ( ! ReferenceEquals ( pointedTab , draggedTab ) )
273
+ {
274
+ this . ReplaceTabPages ( draggedTab , pointedTab ) ;
275
+ }
253
276
}
254
277
}
255
278
@@ -262,7 +285,11 @@ protected override void OnDragOver(DragEventArgs drgevent)
262
285
/// <param name="e"></param>
263
286
protected override void OnMouseDown ( MouseEventArgs e )
264
287
{
265
- predraggedTab = getPointedTab ( ) ;
288
+ if ( enableDragDrop )
289
+ {
290
+ predraggedTab = getPointedTab ( ) ;
291
+ }
292
+
266
293
var p = e . Location ;
267
294
if ( ! this . ShowClosingButton )
268
295
{
@@ -378,7 +405,7 @@ protected override void OnPaint(PaintEventArgs e)
378
405
// Draws the back of the color when it is selected
379
406
Drawer . FillRectangle (
380
407
new SolidBrush ( this . activeColor ) ,
381
- new Rectangle ( Header . X - 5 , Header . Y - 3 , Header . Width , Header . Height + 5 ) ) ;
408
+ new Rectangle ( Header . X - 2 , Header . Y - 3 , Header . Width - 3 , Header . Height + 5 ) ) ;
382
409
383
410
// Draws the title of the page
384
411
Drawer . DrawString (
0 commit comments