没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2005-07-04 09:30:00.000|阅读 1082 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
程序代码如下所示:
Public Class Resize
'移动了吗?
Private IsMoving As Boolean = False
'控件最后的宽
Private ctrlLastWidth As Integer = 0
'控件最后的高
Private ctrlLastHeight As Integer = 0
'控件原来的宽
Private ctrlWidth As Integer
'最后的左侧坐标
Private ctrlLastLeft As Integer
'最后的顶部坐标
Private ctrlLastTop As Integer
'控件原来的高
Private ctrlHeight As Integer
'控件的左侧坐标
Private ctrlLeft As Integer
'控件的顶部坐标
Private ctrlTop As Integer
'光标的左侧坐标
Private cursorL As Integer
'光标的顶部坐标
Private cursorT As Integer
Private Htap As Integer
Private Wtap As Integer
Private ctrlIsResizing As Boolean = False
'控件的大小矩形
Private ctrlRectangle As System.Drawing.Rectangle = New System.Drawing.Rectangle()
Private ctrl As Control '操作的控件
Private frm As Form '控件的父亲窗体
'构造函数
Public Sub New(ByVal c As Control, ByVal frm As Form)
ctrl = c
Me.frm = frm '标题栏和横向滚动条以及边框的宽
Me.Htap = Me.frm.Height - Me.frm.ClientRectangle.Height'纵向滚动条和边框的宽
Me.Wtap = Me.frm.Width - Me.frm.ClientRectangle.Width
AddHandler ctrl.MouseDown, AddressOf MouseDown
AddHandler ctrl.MouseMove, AddressOf MouseMove
AddHandler ctrl.MouseUp, AddressOf MouseUp
End Sub
'鼠标按下后的处理
Private Sub MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
If frm Is Nothing Then
Return
End If
MessageBox.Show(e.Y.ToString)
MessageBox.Show((Me.ctrl.Height - 10).ToString)
MessageBox.Show(e.X.ToString)
MessageBox.Show((Me.ctrl.Width - 10).ToString)
'设置第一次有效单击的范围
If e.X < Me.ctrl.Width - 10 OrElse e.Y < Me.ctrl.Height - 10 Then
Me.IsMoving = True
'指定要绘制的虚线框的坐标(相对屏幕)
Me.ctrlLeft = Me.frm.DesktopLocation.X + Me.Wtap + Me.ctrl.Left
Me.ctrlTop = Me.frm.DesktopLocation.Y + Me.Htap + Me.ctrl.Top
'光标的位置
Me.cursorL = Cursor.Position.X
Me.cursorT = Cursor.Position.Y
'控件的原来宽与高
Me.ctrlWidth = Me.ctrl.Width
Me.ctrlHeight = Me.ctrl.Height
End If
ctrlRectangle.Location = New System.Drawing.Point(Me.ctrlLeft, Me.ctrlTop)
ctrlRectangle.Size = New System.Drawing.Size(ctrlWidth, ctrlHeight)
'绘制框架(矩形大小,背景色,边框风格(这里是虚线框))
ControlPaint.DrawReversibleFrame(ctrlRectangle, Color.Empty,
System.Windows.Forms.FrameStyle.Dashed)
End Sub
Private Sub MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
If frm Is Nothing Then
Return
End If
'如果是鼠标左键
If e.Button = MouseButtons.Left Then
If Me.IsMoving Then
If ctrlLastLeft = 0 Then
ctrlLastLeft = ctrlLeft
End If
If ctrlLastTop = 0 Then
ctrlLastTop = ctrlTop
End If
Dim locationX As Integer = (Cursor.Position.X - Me.cursorL +
Me.frm.DesktopLocation.X + Me.Wtap + Me.ctrl.Location.X)
Dim locationY As Integer = (Cursor.Position.Y - Me.cursorT +
Me.frm.DesktopLocation.Y + Me.Htap + Me.ctrl.Location.Y)
If locationX < Me.frm.DesktopLocation.X + Me.Wtap Then
locationX = Me.frm.DesktopLocation.X + Me.Wtap
End If
If locationY < Me.frm.DesktopLocation.Y + Me.Htap Then
locationY = Me.frm.DesktopLocation.Y + Me.Htap
End If
Me.ctrlLeft = locationX
Me.ctrlTop = locationY
ctrlRectangle.Location = New System.Drawing.Point(Me.ctrlLastLeft,
Me.ctrlLastTop)
ctrlRectangle.Size = New System.Drawing.Size(ctrlWidth, ctrlHeight)
ControlPaint.DrawReversibleFrame(ctrlRectangle, Color.Empty,
System.Windows.Forms.FrameStyle.Dashed)
ctrlLastLeft = ctrlLeft
ctrlLastTop = ctrlTop
ctrlRectangle.Location = New System.Drawing.Point(ctrlLeft, ctrlTop)
ctrlRectangle.Size = New System.Drawing.Size(ctrlWidth, ctrlHeight)
ControlPaint.DrawReversibleFrame(ctrlRectangle, Color.Empty,
System.Windows.Forms.FrameStyle.Dashed)
Return
End If
Dim sizeageX As Integer = (Cursor.Position.X - Me.frm.DesktopLocation.X -
Me.Wtap - Me.ctrl.Location.X)
Dim sizeageY As Integer = (Cursor.Position.Y - Me.frm.DesktopLocation.Y -
Me.Htap - Me.ctrl.Location.Y)
If sizeageX < 2 Then
sizeageX = 1
End If
If sizeageY < 2 Then
sizeageY = 1
End If
ctrlWidth = sizeageX
ctrlHeight = sizeageY
If ctrlLastWidth = 0 Then
ctrlLastWidth = ctrlWidth
End If
If ctrlLastHeight = 0 Then
ctrlLastHeight = ctrlHeight
End If
If ctrlIsResizing Then
ctrlRectangle.Location = New
System.Drawing.Point(Me.frm.DesktopLocation.X + Me.ctrl.Left + Me.Wtap,
Me.frm.DesktopLocation.Y + Me.Htap + Me.ctrl.Top)
ctrlRectangle.Size = New System.Drawing.Size(ctrlLastWidth,
ctrlLastHeight)
End If
ctrlIsResizing = True
ControlPaint.DrawReversibleFrame(ctrlRectangle, Color.Empty,
System.Windows.Forms.FrameStyle.Dashed)
ctrlLastWidth = ctrlWidth
ctrlLastHeight = ctrlHeight
ctrlRectangle.Location = New System.Drawing.Point(Me.frm.DesktopLocation.X +
Me.Wtap + Me.ctrl.Left, Me.frm.DesktopLocation.Y + Me.Htap + Me.ctrl.Top)
ctrlRectangle.Size = New System.Drawing.Size(ctrlWidth, ctrlHeight)
ControlPaint.DrawReversibleFrame(ctrlRectangle, Color.Empty,
System.Windows.Forms.FrameStyle.Dashed)
End If
End Sub
Private Sub MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
If frm Is Nothing Then
Return
End If
ctrlIsResizing = False
If Me.IsMoving Then
ctrlRectangle.Location = New System.Drawing.Point(Me.ctrlLeft,
Me.ctrlTop)
ctrlRectangle.Size = New System.Drawing.Size(ctrlWidth, ctrlHeight)
ControlPaint.DrawReversibleFrame(ctrlRectangle,
Color.Empty,System.Windows.Forms.FrameStyle.Dashed)
Me.ctrl.Left = Me.ctrlLeft - Me.frm.DesktopLocation.X - Me.Wtap
Me.ctrl.Top = Me.ctrlTop - Me.frm.DesktopLocation.Y - Me.Htap
Me.IsMoving = False
Me.ctrl.Refresh()
Return
End If
ctrlRectangle.Location = New System.Drawing.Point(Me.frm.DesktopLocation.X +
Me.Wtap + Me.ctrl.Left, Me.frm.DesktopLocation.Y + Me.Htap + Me.ctrl.Top)
ctrlRectangle.Size = New System.Drawing.Size(ctrlWidth, ctrlHeight)
ControlPaint.DrawReversibleFrame(ctrlRectangle, Color.Empty,
System.Windows.Forms.FrameStyle.Dashed)
Me.ctrl.Width = ctrlWidth
Me.ctrl.Height = ctrlHeight
Me.ctrl.Refresh()
End Sub
End Class
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号