社区
VB基础类
帖子详情
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)里的三个参数source、X、Y各代表什么意思?
happyjessica
2003-05-14 09:28:52
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)里的三个参数source、X、Y各代表什么意思?
...全文
159
2
打赏
收藏
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)里的三个参数source、X、Y各代表什么意思?
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)里的三个参数source、X、Y各代表什么意思?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happyjessica
2003-05-14
打赏
举报
回复
我要拖动的是image控件,那摸x,y各代表控件的什么坐标?
叶帆
2003-05-14
打赏
举报
回复
Source 你拖动的控件,你可以直接引用,如你知道是CommandBox
也可以这样使用
dim cm as CommandBox
set cm=Source
cm.top=???
X,Y-指拖动时的座标
VB 5.0中实现鼠标拖放...
VB之精彩编程-VB 5.0中实现鼠标拖放
精彩编程与编程技巧-用VB实现拖放功能...
精彩编程与编程技巧-用VB实现拖放功能 ...
VB版数字排序拼图小游戏
VB版数字排序拼图小游戏 Option Explicit Dim Label2X As Integer '记录标签控件数组中要移动的标签控件左上角X的位置 Dim Label2Y As Integer '记录标签控件数组中要移动的标签控件左上角Y的位置 '让标签数组中的每个标签控件上显示的数字是随机的,无重复的
Private
Sub
Init() Randomize Dim a(7) As Integer Dim i As Integer, k As Integer Label1.Caption = "" For i = 0 To 7 a(i) = i Next For i = 0 To 7 k = Int(Rnd * 8) Do While a(k) = -1 'a(k)=-1表示该数组元素对应的数字已经被使用过了 k = Int(Rnd * 8) '重新生成k的值,直到a(k)的值不等于-1 Loop Label2(i).Caption = Trim(Str(a(k))) a(k) = -1 'a(k)的值已经使用了,不能再用,重新赋值为-1与其他的元素值相区别 Next i End
Sub
Private
Sub
cb_Click() MsgBox "欢迎观临 陈彬 020901033" End
Sub
Private
Sub
Command1_Click() Dim x As Integer, y As Integer Dim z As Integer Init
Pic
tu
re1.Enabled = True '让空白标签Label1出现的位置随机 Randomize '记录下空白标签Label1的位置 x = Label1.Left y = Label1.Top z = Int(Rnd * 8) '将空白标签Label1和标签控件数组任一控件交换位置 Label1.Move Label2(z).Left, Label2(z).Top Label2(z).Move x, y Command1.Enabled = False End
Sub
Private
Sub
Command2_Click() End End
Sub
Private
Sub
Form_Load() Dim i As Integer
Pic
tu
re1.Enabled = False '在标签中显示游戏说明信息 Label3.Caption = "如左图所示,将数字按0-7顺" & vbCrLf & vbCrLf & "序依次排列,即取得胜利。" '在标签中显示排列规则后的数字顺序 Label1.Caption = 0 For i = 0 To 6 Label2(i).Caption = i + 1 Next End
Sub
Private
Sub
Label1_
Drag
Drop
(
Source
As
Control
, x As
Single
, y As
Single
) Dim Label1X As Integer '记录空白控件Label1左上角X的位置 Dim Label1Y As Integer '记录空白控件Label1左上角Y的位置 Dim flag(3) As Boolean '获取空白控件Label1的位置 Label1X = Label1.Left Label1Y = Label1.Top '要移动的控件位于空白控件Label1的正左侧 flag(0) = (Label2X = Label1X -
Source
.Width) And (Label2Y = Label1Y) '要移动的控件位于空白控件Label1的正右侧 flag(1) = (Label2X = Label1X +
Source
.Width) And (Label2Y = Label1Y) '要移动的控件位于空白控件Label1的正上方 flag(2) = (Label2X = Label1X) And (Label2Y = Label1Y -
Source
.Height) '要移动的控件位于空白控件Label1的正下方 flag(3) = (Label2X = Label1X) And (Label2Y = Label1Y +
Source
.Height) If flag(0) Or flag(1) Or flag(2) Or flag(3) Then Label1.Move Label2X, Label2Y
Source
.Move Label1X, Label1Y End If Win End
Sub
Private
Sub
Label2_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As
Single
, y As
Single
) If Button = vbLeftButton Then '如果按下鼠标左键 '记录下要拖动控件的位置 Label2X = Label2(Index).Left Label2Y = Label2(Index).Top Label2(Index).
Drag
1 '启动拖动操作 End If End
Sub
Private
Sub
Label2_MouseUp(Index As Integer, Button As Integer, Shift As Integer, x As
Single
, y As
Single
) Label2(Index).
Drag
2 '结束拖动操作 End
Sub
Private
Sub
Win() Dim winner As Integer Dim i As Integer Dim answer As Integer '对于给定的标签控件数组中的任一标签控件,可以落在符合要求(对应位置应显示对应数字) '的八个位置中的任一位置 '利用循环语句对标签控件数组中的每个标签控件进行检查,如果其落在某一符号要求的位置, '则变量winner的值加1,如果所有标签控件都落在符号要求的位置,则变量winner的值应为8 For i = 0 To 7 If Label2(i).Left = 0 And Label2(i).Top = 0 And _ Label2(i).Caption = 0 Then winner = winner + 1 ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = 0 And _ Label2(i).Caption = 1 Then winner = winner + 1 ElseIf Label2(i).Left = 2 * Label2(i).Width And Label2(i).Top = 0 And _ Label2(i).Caption = 2 Then winner = winner + 1 ElseIf Label2(i).Left = 0 And Label2(i).Top = Label2(i).Height And _ Label2(i).Caption = 3 Then winner = winner + 1 ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = Label2(i).Height And _ Label2(i).Caption = 4 Then winner = winner + 1 ElseIf Label2(i).Left = 2 * Label2(i).Width And Label2(i).Top = Label2(i).Height And _ Label2(i).Caption = 5 Then winner = winner + 1 ElseIf Label2(i).Left = 0 And Label2(i).Top = 2 * Label2(i).Height And _ Label2(i).Caption = 6 Then winner = winner + 1 ElseIf Label2(i).Left = Label2(i).Width And Label2(i).Top = 2 * Label2(i).Height And _ Label2(i).Caption = 7 Then winner = winner + 1 End If Next i If winner = 8 Then MsgBox " 恭喜您,胜利了!", 0 + 64 + 0, "提示"
Pic
tu
re1.Enabled = False answer = MsgBox("还继续吗?", 4 + 32 + 0, "提示") If answer = vbYes Then Command1.Enabled = True Else End End If End If End
Sub
餐馆:Jogo resta 1,contémapenas 13 linhas decódigo:)
餐馆 Jogo resta 1,contémapenas 13 linhas decódigo:)
Private
Sub
imgGoti_
Drag
Drop
(Index As Integer,
Source
As
Control
, X As
Single
, Y As
Single
) If (imgGoti(Index).
Pic
tu
re <> 0) _ Or Abs(
Source
.Index - Index) <> 2 _ And Abs(
Source
.Index - Index) <> 20 Then Exit
Sub
End If If (imgGoti(
Source
.Index - ((
Source
.Index - Index) / 2)).
Pic
tu
re = 0) Then Exit Su
vb 控件参考手册(PDF)
实用参考手册,不是老用VB编程的人不用记那么多罗嗦的
参数
和属性啦。
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章