PDA

View Full Version : Drog & Drop



سعید112
چهارشنبه 09 خرداد 1386, 14:54 عصر
با سلام...
چندوقته MSDN رو زیرو رو کردم تا بتونم کد لازم برای نوشتن یه فرم مثل فتوشاپ پیدا کنم موفق هم شدم ولی ظاهرا کار نمیکنه:عصبانی++:
یعنی میخواستم وقتی یه عکس رو داخل picturebox میندازم سریعا باز شه

Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop
If e.Data.GetDataPresent(DataFormats.Bitmap) Then

Me.PictureBox1.Image = e.Data.GetData(DataFormats.Bitmap, False)
End If

End Sub


واقعا نمیدمنم چیکار کنم :اشتباه: ممنون از جوابتون ....

ghafoori
پنج شنبه 10 خرداد 1386, 07:17 صبح
دوست عزیز منظور شما چیست که کار نمی کنه این کد بنظر درست می اید رویداد drag enter را هم کد نوشتید اگر نوشتید و برنامه کار نمی کند شما عکس را می کشید روی فرم دقیقا چه اتفاقی می افتد

saina2006
پنج شنبه 10 خرداد 1386, 08:15 صبح
باید AllowDrop را برابر با True قرار بدی

سعید112
جمعه 11 خرداد 1386, 14:52 عصر
دوست عزیز منظور شما چیست که کار نمی کنه این کد بنظر درست می اید رویداد drag enter را هم کد نوشتید اگر نوشتید و برنامه کار نمی کند شما عکس را می کشید روی فرم دقیقا چه اتفاقی می افتد

خاصیت allow drop=true هست.
برای drogenter نوشتم

Private Sub Form1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter
e.Effect = DragDropEffects.Copy
End Sub

saina2006
شنبه 12 خرداد 1386, 07:33 صبح
این کد را امتحان کنید فکر کنم جواب بده


Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
Dim formats As ICollection(Of String) = e.Data.GetFormats(True)

If (formats.Contains("FileDrop")) Then
Dim files() As String = CType(e.Data.GetData("FileDrop", True), String())
End If

End Sub

Private Sub Form1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
e.Effect = DragDropEffects.All
End Sub

سعید112
شنبه 12 خرداد 1386, 19:02 عصر
این کد را امتحان کنید فکر کنم جواب بده


Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
Dim formats As ICollection(Of String) = e.Data.GetFormats(True)

If (formats.Contains("FileDrop")) Then
Dim files() As String = CType(e.Data.GetData("FileDrop", True), String())
End If

End Sub

Private Sub Form1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
e.Effect = DragDropEffects.All
End Sub

اینم امتحان کردم نشد. ضمنا کدمو اینطوری ام نوشتم .انگار نه انگار:ناراحت:

Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop
Me.PictureBox1.Image = CType(e.Data.GetData(DataFormats.FileDrop), Bitmap)
End Sub

saina2006
شنبه 12 خرداد 1386, 21:50 عصر
اینم نمونه برنامه

سعید112
یک شنبه 13 خرداد 1386, 00:41 صبح
بالاخره با راهنمایی هاتون و کلنجار رفتن تا این موقع شب فهمیدم :کف: :کف: :کف:
1-باید VS 2005 رو نصب کنم . شاید 2003 فقط برای من ناز میکنه!
2-از خاصیت e.data.getdata(dataformats.bitmap) نمیشه استفاده کرد
3- اگه بخواهی مسیر عکسو به برنامه بدی باید مثل کد زیر از ارایه استفاده کنی ولی دلیلشو نفهمیدم چرا. توی msdn هم از ارایه استفاده نکرده؟؟؟؟؟؟؟؟؟:متفکر:
اگه کسی میدونه دریغ نکنه

Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop
Dim pad() As String = CType(e.Data.GetData(DataFormats.FileDrop), String ((Me.PictureBox1.Image = New Bitmap(pad(0
End Sub

__________________________________________________ _
سعی وتلاش را از مورچه باید آموخت.