① VB 拖動圖片放到窗體任意位置
Private isMouseDown As Boolean = False
Private isSpaceDown As Boolean = False
Private mouseOffset As Point '記錄滑鼠指針坐標
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
mouseOffset.X = e.X
mouseOffset.Y = e.Y
isMouseDown = True
End If
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If isMouseDown = True And isSpaceDown = True Then
Dim left As Integer = PictureBox1.Left + e.X - mouseOffset.X
Dim top As Integer = PictureBox1.Top + e.Y - mouseOffset.Y
PictureBox1.Location = New Point(left, top)
End If
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
If e.Button = Windows.Forms.MouseButtons.Left Then
isMouseDown = False
End If
End Sub
Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Space Then
isSpaceDown = True
End If
End Sub
Private Sub Form1_KeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
If e.KeyCode = Keys.Space Then
isSpaceDown = False
End If
End Sub
② vb picture載入圖片指定位置
VB可PaintPicture 方法在對象上繪制圖形。
PaintPicture 方法
用以在 Form, PictureBox 或 Printer
上繪制圖形文件(.bmp、.wmf、.emf、.cur、.ico或 .dib)的內容。
③ 如何用VB在指定位置中顯示指定圖形
你可以用空格來控制字元串的顯示位置,具體代碼如下
PrivateSubForm_Click()
Print"*******************"
Print"*hello*"
Print"*******************"
EndSub
④ vb6.0中設置一張圖片在所有的窗口同一位置都能顯示,如何操作
切換窗口就是將本窗口隱藏,另一個窗口顯示,比如form2.show:me.hide,什麼時候要切換就把代碼加哪裡。
⑤ vb中,如何將一幅圖片定位到一個picture窗口中特定位置處
不需要多少代碼~
做一個picture1 大小要大
picture2小點
以下代碼可以跟隨滑鼠來定點陣圖片(請向picture2中載入一張圖片)
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture2.Left = X
Picture2.Top = Y
Me.Caption = X & "," & Y
End Sub
⑥ vb多個圖片控制項如何前後顯示,即位置靠下的在前位置靠上的在後,控制項數是比較多的
方法:
ReOrder()
'然後就能看到重新排列了的PictureBox。
'如果你所說的「圖片控制項」是Image的話,就把所有的"PictureBox"替換成"Image",並且適當修改CtrlIsPictureBox函數。
'如果還不行,就找我。QQ:838816058
Sub ReOrder()
Dim PicCtrl As Control '控制項(這是個「代詞」,可以指代任何一個控制項)
Dim NumOfPics As Long 'PictureBox的數量
Dim Indxs() As Control '把所有PictureBox製成一張表
Dim I&, J& '臨時索引
For Each PicCtrl In Form1.Controls
If CtrlIsPictureBox(PicCtrl) Then NumOfPics = NumOfPics + 1 '先統計出共有多少個PictureBox
Next
ReDim Indxs(NumOfPics - 1) '創建數組
I = 0
For Each PicCtrl In Form1.Controls
If CtrlIsPictureBox(PicCtrl) Then
Set Indxs(I) = PicCtrl '制PictureBox表
I = I + 1
End If
Next
For I = 0 To NumOfPics - 1 '分配順序
For J = 0 To NumOfPics - 1 '分配順序
If Indxs(I).Top < Indxs(J).Top Then '如果編號I的控制項在編號J的控制項上方
If I < J Then '如果編號I靠後
Set PicCtrl = Indxs(I)
Set Indxs(I) = Indxs(J)
Set Indxs(J) = PicCtrl '交換PictureBox表項
End If
ElseIf Indxs(I).Top > Indxs(J).Top Then '如果編號I的控制項在編號J的控制項下方
If I > J Then '如果編號I靠前
Set PicCtrl = Indxs(I)
Set Indxs(I) = Indxs(J)
Set Indxs(J) = PicCtrl '交換PictureBox表項
End If
End If '如果高度相等,不管他
Next
Next
'這時的Indxs數組就是Form1的所有PictureBox的集合(注意!這里說的集合是數學概念,不是Collection類型),並且按從上到下的順序排列。
For I = 0 To NumOfPics - 1
Indxs(I).ZOrder 1 '依次進行「置前」命令,越靠下的越靠前。
Next
Erase Indxs
End Sub
Function CtrlIsPictureBox(CtrlIn As Control) As Boolean '判斷一個控制項是不是PictureBox
On Error GoTo Raisederr
CtrlIn.PaintPicture CtrlIn.Image, 0, 0, 15, 15, 0, 0, 15, 15, vbSrcCopy '調用這個控制項的函數和屬性(調用了Image屬性,PaintPicture函數,如果成功,說明是PictureBox。這個調用實際上不起作用。)
CtrlIsPictureBox = True '要是成功,返回True
Raisederr: '要是不成功,直接退出這個函數(如果不設置返回值,VB6默認返回False)
End Function
'ZOrder函數用法:
控制項(或窗口).ZOrder 1或0
比如,Form1裡面有兩個CommandButton,分別叫CMD1和CMD2。現在CMD2比較靠前,如果要讓CMD1靠前,可以這樣:
CMD1.ZOrder 1
或者:
CMD2.ZOrder 0
其中前者表示把CMD1往前放一層,後者則把CMD2往後放一層。效果一樣的不信你試。
⑦ vb如何產生圖片,使它們位置固定但順序隨機
1、每次運行Int(Rnd * 5),都會獲取一個隨機數字,你的代碼相當於獲取了10個隨機數
2、只有五張圖片,獲取五個數字就可以了,簡單修改如下:
Private Sub Form_Load()
Randomize
dim m as integer
m=Int(Rnd * 5)
Image1(m).Top = 1560
Image1(m)).Left = 0
m=Int(Rnd * 5)
Image1(Int(Rnd * 5)).Top = 3360
Image1(Int(Rnd * 5)).Left = 3120
m=Int(Rnd * 5)
Image1(Int(Rnd * 5)).Top = 4200
Image1(Int(Rnd * 5)).Left = 6960
m=Int(Rnd * 5)
Image1(m).Top = 3120
Image1(m).Left = 10800
m=Int(Rnd * 5)
Image1(m).Top = 1440
Image1(m).Left = 14040
End Sub
⑧ vb 中插入圖片後,如何用語句調整圖片位置啊
調整位置,最好用Move方法,這樣效率要比直接修改Left和Top屬性要高的多
例:
Image1.Move 10000,3000
Picture1.Move 2000,2000
語法
object.Move left, top, width, height
Move 方法的語法包含下列部分:
部分 描述
object 可選的。一個對象表達式,其值為「應用於」列表中的一個對象。如果省略 object,帶有焦點的窗體預設為 object。
left 必需的。單精度值,指示 object 左邊的水平坐標 (x-軸)。
top 可選的。單精度值,指示 object 頂邊的垂直坐標 (y-軸)。
width 可選的。單精度值,指示 object 新的寬度。
height 可選的。單精度值,指示 object 新的高度。
⑨ 如何在vb中使圖片隨機出現在不同位置上
圖片放在PictureBox控制項中的:
PrivateSubForm_Load()
Randomize
Picture1.Move(Me.ScaleWidth-Picture1.Width)*Rnd,(Me.ScaleHeight-Picture1.Height)*Rnd
EndSub
圖片放在Image控制項中的:
PrivateSubForm_Load()
Randomize
Image1.Move(Me.ScaleWidth-Image1.Width)*Rnd,(Me.ScaleHeight-Image1.Height)*Rnd
EndSub
不用控制項,直接調用圖片文件的:
PrivateSubForm_Load()
DimtpAsStdPicture
Randomize
Me.AutoRedraw=True
Settp=LoadPicture("e: mpcd1.gif")
Me.PaintPicturetp,(Me.ScaleWidth-tp.Width)*Rnd,(Me.ScaleHeight-tp.Height)*Rnd
EndSub
⑩ 在VB中插入圖片後,如何能用代碼控制具體位置啊
其一:用圖片框裝上,移動圖片框的top和left即可