日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c# groupbox大小,C# 实现可拖动和调整大小的控件

發布時間:2025/5/22 C# 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# groupbox大小,C# 实现可拖动和调整大小的控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Text;

using?System.Drawing;

using?System.Windows.Forms;

namespace?Toolcs

{

class?DragComponent

{

#region?實現窗體內的控件拖動

//用法:在Form初始化或者Form_Load時先執行

//DragComponent?a?=?new?DragComponent();

//a.initProperty(groupBox1);

//將界面groupBox1上的所有控件都綁定MyMouseDown、MyMouseLeave、MyMouseMove事件。

private?Control?control;

const?int?Band?=?5;

const?int?MinWidth?=?10;

const?int?MinHeight?=?10;

private?EnumMousePointPosition?m_MousePointPosition;

private?Point?p?,?p1;

private?enum?EnumMousePointPosition

{

MouseSizeNone?=?0?,?//'無

MouseSizeRight?=?1?,?//'拉伸右邊框

MouseSizeLeft?=?2?,?//'拉伸左邊框

MouseSizeBottom?=?3?,?//'拉伸下邊框

MouseSizeTop?=?4?,?//'拉伸上邊框

MouseSizeTopLeft?=?5?,?//'拉伸左上角

MouseSizeTopRight?=?6?,?//'拉伸右上角

MouseSizeBottomLeft?=?7?,?//'拉伸左下角

MouseSizeBottomRight?=?8?,?//'拉伸右下角

MouseDrag?=?9?//?'鼠標拖動

}

private?void?MyMouseDown?(?object?sender?,?System.Windows.Forms.MouseEventArgs?e?)

{

p.X?=?e.X;

p.Y?=?e.Y;

p1.X?=?e.X;

p1.Y?=?e.Y;

}

private?void?MyMouseLeave?(?object?sender?,?System.EventArgs?e?)

{

m_MousePointPosition?=?EnumMousePointPosition.MouseSizeNone;

control.Cursor?=?Cursors.Arrow;

}

private?EnumMousePointPosition?MousePointPosition?(?Size?size?,?System.Windows.Forms.MouseEventArgs?e?)

{

if?((e.X?>=?-1?*?Band)?|?(e.X?<=?size.Width)?|?(e.Y?>=?-1?*?Band)?|?(e.Y?<=?size.Height))

{

if?(e.X?

{

if?(e.Y?

{

return?EnumMousePointPosition.MouseSizeTopLeft;

}

else

{

if?(e.Y?>?-1?*?Band?+?size.Height)

{

return?EnumMousePointPosition.MouseSizeBottomLeft;

}

else

{

return?EnumMousePointPosition.MouseSizeLeft;

}

}

}

else

{

if?(e.X?>?-1?*?Band?+?size.Width)

{

if?(e.Y?

{

return?EnumMousePointPosition.MouseSizeTopRight;

}

else

{

if?(e.Y?>?-1?*?Band?+?size.Height)

{

return?EnumMousePointPosition.MouseSizeBottomRight;

}

else

{

return?EnumMousePointPosition.MouseSizeRight;

}

}

}

else

{

if?(e.Y?

{

return?EnumMousePointPosition.MouseSizeTop;

}

else

{

if?(e.Y?>?-1?*?Band?+?size.Height)

{

return?EnumMousePointPosition.MouseSizeBottom;

}

else

{

return?EnumMousePointPosition.MouseDrag;

}

}

}

}

}

else

{

return?EnumMousePointPosition.MouseSizeNone;

}

}

private?void?MyMouseMove?(?object?sender?,?System.Windows.Forms.MouseEventArgs?e?)

{

Control?lCtrl?=?(sender?as?Control);

if?(e.Button?==?MouseButtons.Left)

{

switch?(m_MousePointPosition)

{

case?EnumMousePointPosition.MouseDrag:

lCtrl.Left?=?lCtrl.Left?+?e.X?-?p.X;

lCtrl.Top?=?lCtrl.Top?+?e.Y?-?p.Y;

break;

case?EnumMousePointPosition.MouseSizeBottom:

lCtrl.Height?=?lCtrl.Height?+?e.Y?-?p1.Y;

p1.X?=?e.X;

p1.Y?=?e.Y;?//'記錄光標拖動的當前點

break;

case?EnumMousePointPosition.MouseSizeBottomRight:

lCtrl.Width?=?lCtrl.Width?+?e.X?-?p1.X;

lCtrl.Height?=?lCtrl.Height?+?e.Y?-?p1.Y;

p1.X?=?e.X;

p1.Y?=?e.Y;?//'記錄光標拖動的當前點

break;

case?EnumMousePointPosition.MouseSizeRight:

lCtrl.Width?=?lCtrl.Width?+?e.X?-?p1.X;

//??????lCtrl.Height?=?lCtrl.Height?+?e.Y?-?p1.Y;

p1.X?=?e.X;

p1.Y?=?e.Y;?//'記錄光標拖動的當前點

break;

case?EnumMousePointPosition.MouseSizeTop:

lCtrl.Top?=?lCtrl.Top?+?(e.Y?-?p.Y);

lCtrl.Height?=?lCtrl.Height?-?(e.Y?-?p.Y);

break;

case?EnumMousePointPosition.MouseSizeLeft:

lCtrl.Left?=?lCtrl.Left?+?e.X?-?p.X;

lCtrl.Width?=?lCtrl.Width?-?(e.X?-?p.X);

break;

case?EnumMousePointPosition.MouseSizeBottomLeft:

lCtrl.Left?=?lCtrl.Left?+?e.X?-?p.X;

lCtrl.Width?=?lCtrl.Width?-?(e.X?-?p.X);

lCtrl.Height?=?lCtrl.Height?+?e.Y?-?p1.Y;

p1.X?=?e.X;

p1.Y?=?e.Y;?//'記錄光標拖動的當前點

break;

case?EnumMousePointPosition.MouseSizeTopRight:

lCtrl.Top?=?lCtrl.Top?+?(e.Y?-?p.Y);

lCtrl.Width?=?lCtrl.Width?+?(e.X?-?p1.X);

lCtrl.Height?=?lCtrl.Height?-?(e.Y?-?p.Y);

p1.X?=?e.X;

p1.Y?=?e.Y;?//'記錄光標拖動的當前點

break;

case?EnumMousePointPosition.MouseSizeTopLeft:

lCtrl.Left?=?lCtrl.Left?+?e.X?-?p.X;

lCtrl.Top?=?lCtrl.Top?+?(e.Y?-?p.Y);

lCtrl.Width?=?lCtrl.Width?-?(e.X?-?p.X);

lCtrl.Height?=?lCtrl.Height?-?(e.Y?-?p.Y);

break;

default:

break;

}

if?(lCtrl.Width?

if?(lCtrl.Height?

}

else

{

m_MousePointPosition?=?MousePointPosition(lCtrl.Size?,?e);?//'判斷光標的位置狀態

switch?(m_MousePointPosition)?//'改變光標

{

case?EnumMousePointPosition.MouseSizeNone:

control.Cursor?=?Cursors.Arrow;???????//'箭頭

break;

case?EnumMousePointPosition.MouseDrag:

control.Cursor?=?Cursors.SizeAll;?????//'四方向

break;

case?EnumMousePointPosition.MouseSizeBottom:

control.Cursor?=?Cursors.SizeNS;??????//'南北

break;

case?EnumMousePointPosition.MouseSizeTop:

control.Cursor?=?Cursors.SizeNS;??????//'南北

break;

case?EnumMousePointPosition.MouseSizeLeft:

control.Cursor?=?Cursors.SizeWE;??????//'東西

break;

case?EnumMousePointPosition.MouseSizeRight:

control.Cursor?=?Cursors.SizeWE;??????//'東西

break;

case?EnumMousePointPosition.MouseSizeBottomLeft:

control.Cursor?=?Cursors.SizeNESW;????//'東北到南西

break;

case?EnumMousePointPosition.MouseSizeBottomRight:

control.Cursor?=?Cursors.SizeNWSE;????//'東南到西北

break;

case?EnumMousePointPosition.MouseSizeTopLeft:

control.Cursor?=?Cursors.SizeNWSE;????//'東南到西北

break;

case?EnumMousePointPosition.MouseSizeTopRight:

control.Cursor?=?Cursors.SizeNESW;????//'東北到南西

break;

default:

break;

}

}

}

public??void?initProperty?(Control?ctl)

{

control?=?ctl;

for?(int?i?=?0?;?i?

{

control.Controls[i].MouseDown?+=?new?System.Windows.Forms.MouseEventHandler(MyMouseDown);

control.Controls[i].MouseLeave?+=?new?System.EventHandler(MyMouseLeave);

control.Controls[i].MouseMove?+=?new?System.Windows.Forms.MouseEventHandler(MyMouseMove);

}

}

#endregion

}

}

總結

以上是生活随笔為你收集整理的c# groupbox大小,C# 实现可拖动和调整大小的控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。