大約一個月前,Idle_Mind在開發視覺基本桌面應用程序方面得到了一些很好的幫助,孩子們可以按照正確的順序拖放圖片(圖片框)。我已經展示了Idle_Mind下面提供的代碼。它的作品非常漂亮,並且被學生們喜歡。在網頁上拖放圖片
現在,我試圖在網站上重新創建應用程序。我正在使用Visual Web Developer 2008 Express。在「代碼隱藏」中使用相同的代碼會產生很多錯誤。看起來Image控件沒有相同的拖放屬性。
我應該試圖在「後面的代碼」中從Visual Basic中創建這些拖放行爲,還是應該試圖用html完成此操作? Visual Web Developer使用Visual Basic.net和XHTML 1.0 Transitional(我相信)
與往常一樣,謝謝!
Public Class Form1
Private Source As PictureBox = Nothing
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each PB As PictureBox In Me.Controls.OfType(Of PictureBox)()
PB.AllowDrop = True
AddHandler PB.MouseMove, AddressOf PBs_MouseMove
AddHandler PB.DragEnter, AddressOf PBs_DragEnter
AddHandler PB.DragDrop, AddressOf PBs_DragDrop
AddHandler PB.DragOver, AddressOf PBs_DragOver
Next
End Sub
Private Sub PBs_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim PB As PictureBox = DirectCast(sender, PictureBox)
If Not IsNothing(PB.Image) AndAlso e.Button = Windows.Forms.MouseButtons.Left Then
Source = PB
PB.DoDragDrop(PB.Image, DragDropEffects.Copy Or DragDropEffects.Move)
End If
End Sub
Private Sub PBs_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
If e.Data.GetDataPresent(DataFormats.Bitmap) Then
If My.Computer.Keyboard.CtrlKeyDown Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.Move
End If
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub PBs_DragOver(sender As Object, e As DragEventArgs)
If e.Data.GetDataPresent(DataFormats.Bitmap) Then
If My.Computer.Keyboard.CtrlKeyDown Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.Move
End If
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub PBs_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
Dim PB As PictureBox = DirectCast(sender, PictureBox)
PB.Image = e.Data.GetData(DataFormats.Bitmap)
If e.Effect = DragDropEffects.Move Then
If Not (PB Is Source) Then
Source.Image = Nothing
End If
End If
End Sub
End Class
Web應用程序不是桌面應用程序,它是一個完全不同的技術堆棧。這種情況下的代碼隱藏完全在服務器端運行,不能與用戶界面實時交互。你會想看看在JavaScript中實現這個功能。幸運的是,諸如拖放功能等廣泛使用的插件可以提供幫助。例如,看看jQuery UI插件。或interact.js,甚至只是MDN文檔:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_and_drop – David
@大衛這可能是一個好的答案。 – Panzercrisis
@Panzercrisis:我不確定,因爲它不是一個「回答」,因爲它是進一步資源的方向。但重新閱讀這個問題,我想你是對的。真的沒有其他辦法可以回答它。 – David