سلام حامدجان
خیلی ممنون که وقت گذاشتی و جواب دادی
ببین من گفته بودم تو پست قبلیم که من نمی خواهم فرم رو تو محیط design ایجاد کنم
شما برنامه فتوشاپ رو در نظر بگیر هر بار که یک عکس رو باز می کنی توی یک پنجره جدید
باز می شه و یا اگر عکس رو به محیط فتوشاپ drag کنی توی یک پنجره جدید باز می شه
من هم می خواهم یه همچین کاری بکنم برای نمایش عکس به هنگام drag&drop کدهاش
توی خود وی بی دات نت در msdn هست (برای دوستانی که مایلند کدهاشو داشته باشند
گفتم) یکی از کدهای مورد استفاده کد زیر هست که نمی دونم دقیقا چطور فراخوانی می
شه به هنگام رخ دادن عمل drag&drop
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
' If there is an image and it has a location,
' paint it when the Form is repainted.
If Not (Me.picture Is Nothing) And _
Not (Me.pictureLocation.Equals(Point.Empty)) Then
e.Graphics.DrawImage(Me.picture, Me.pictureLocation)
End If
End Sub
حالا سئوال من اینه که ایا با توجه به اینکه قرار به ازای هر عکس یک صفحه باز بشه این کار
رو می شه با رو شی که شما گفتید یعنی کد زیر :
Dim ChildForm As New Form2()
ChildForm.MdiParent = Me
m_ChildFormNumber += 1
ChildForm.Text = "Window " & m_ChildFormNumber
ChildForm.Show()
انجام داد یا نه ؟
و سئوال اخر هم این که من هیچ فرمی در محیط design ایجاد نمی کنم و می خواهم فرم
در زمان اجرا ساخته بشه حال اگر کدهای مربوطه درون event خاصی از فرم باشه (مثل load
) که هیچ مشکلی نیست می شه با addhandler این کار رو انجام داد ولی اگر یک تابعی
باشه که در رویداد خاصی قرار نگیره و باید فقط در قسمت کد فرم قرار بگیره اونوقت اون تابع رو
چگونه می توانم در قسمت کد فرم اضافه کنم ؟(مثلا کدهای زیر چطوری باید در قسمت کد
قرار داده شوند)
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
' If there is an image and it has a location,
' paint it when the Form is repainted.
If Not (Me.picture Is Nothing) And _
Not (Me.pictureLocation.Equals(Point.Empty)) Then
e.Graphics.DrawImage(Me.picture, Me.pictureLocation)
End If
End Sub
با تشکر فراوان