PDA

View Full Version : سوال: ریسایز نمودن فرم با ماوس وقتی borderstyle فرم sizible نباشد



nazanin_90
دوشنبه 09 شهریور 1394, 11:02 صبح
سلام
وقتی borderstyle فرم در حالت sizible باشد نشانگر موس بصورت ریسایز برروی لبه های فرم ظاهر میشود و با پائین نگه داشتن و کشیدن به طرف داخل و بیرون فرم ریسایز میشود . اما با انتخاب borderstyle در حالت های دیگر این حالت وجود ندارد . سوال اینجاست آیا با کد نویسی میتوان کاری کرد که وقتی borderstyle فرم در حالت sizible نبود از طریق اشاره گر موس فرم را ریسایز نمود ؟
ضمناً اینکار با درج کنترل statuebar در پائین فرم شدنی است ولی من نمی خواهم از این کنترل در فرمم استفاده نمایم .
با تشکر

علیرضا5
دوشنبه 09 شهریور 1394, 14:45 عصر
سلام نیاز به کد نویسی نداره گزینه های minbutton و maxbutton رو در قسمت پراپرتیس برابر false و
borderstyle رو برابر sizible قرار بدید

nazanin_90
دوشنبه 09 شهریور 1394, 15:04 عصر
سلام
لطفاً سوال مطرح شده را مجدداً مرور بفرمائید !

amin_unique
چهارشنبه 11 شهریور 1394, 10:34 صبح
سلام بله با برنامه نویسی میشه انجام داد .
باید مختصات موس رو بگیری ، (x,y) و طبق حرکت موس طول و عرض فرم رو کم و زیاد کنه تا کوچیک و بزرگ شه .

nazanin_90
دوشنبه 16 شهریور 1394, 19:38 عصر
سلام
وقتی borderstyle فرم در حالت sizible باشد نشانگر موس بصورت ریسایز برروی لبه های فرم ظاهر میشود و با پائین نگه داشتن و کشیدن به طرف داخل و بیرون فرم ریسایز میشود . اما با انتخاب borderstyle در حالت های دیگر این حالت وجود ندارد . سوال اینجاست آیا با کد نویسی میتوان کاری کرد که وقتی borderstyle فرم در حالت sizible نبود از طریق اشاره گر موس فرم را ریسایز نمود ؟
ضمناً اینکار با درج کنترل statuebar در پائین فرم شدنی است ولی من نمی خواهم از این کنترل در فرمم استفاده نمایم .
با تشکر


سلام
من نمونه ای را در ضمیمه قرارداده ام که با با پائین نگه داشتن اشاره گر موس بر روی پیکچر باکس در گوشه پائین سمت راست فرم و کشیدن آن در جهات مختلف فرم ریسایز میشود . حالا می خواهم همین کار را از گوشه پائین سمت چپ انجام بدهم .
اساتید راهنمائی بفرمایند برای اینکار چه تغییری در کدها باید داده شود ؟
با تشکر

nazanin_90
چهارشنبه 18 شهریور 1394, 09:10 صبح
سلام
من نمونه ای را در ضمیمه قرارداده ام که با با پائین نگه داشتن اشاره گر موس بر روی پیکچر باکس در گوشه پائین سمت راست فرم و کشیدن آن در جهات مختلف فرم ریسایز میشود . حالا می خواهم همین کار را از گوشه پائین سمت چپ انجام بدهم .
اساتید راهنمائی بفرمایند برای اینکار چه تغییری در کدها باید داده شود ؟
با تشکر
سلام
اساتید لطفاً راهنمائی فرمایند
با تشکر

محسن واژدی
چهارشنبه 18 شهریور 1394, 18:08 عصر
سلام
کد زیر بررسی کنید ( کد رو در یک فرم خالی کپی و اجرا کنید )
Private WithEvents pbResizer As PictureBox

Private Sub Form_Load()
Set pbResizer = Me.Controls.Add("VB.PictureBox", "pbResizer")

pbResizer.Width = 500
pbResizer.Height = 500

pbResizer.Visible = True

End Sub

Private Sub pbResizer_MouseMove(Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)

Static lx As Single, ly As Single

If Button = vbLeftButton Then
pbResizer.Left = pbResizer.Left + (X - lx)
pbResizer.Top = pbResizer.Top + (Y - ly)

'resize the form
With pbResizer
Me.Width = (.Left + .Width) + (Me.Width - Me.ScaleWidth)
Me.Height = (.Top + .Height) + (Me.Height - Me.ScaleHeight)

End With

Else
lx = X: ly = Y

End If

End Sub

nazanin_90
چهارشنبه 18 شهریور 1394, 21:02 عصر
با سلام و تشکر از استاد واژدی عزیز اگر به نمونه پست 5 عنایت نمائید ملاحظه خواهید فرمود که با پائین نگه داشتن موس برروی PictureBox که در گوشه پائین سمت راست فرم است و کشیدن آن ، فرم از سمت راست ریسایز میشود ؛ اما بنده میخواهم این PictureBox در گوشه پائین سمت چپ قرار گرفته و با کشیدن آن ، فرم از سمت چپ ریسایز شود . ضمناً جناب واژدی ! با عنایت به اینکه قصد دارم این کدها را در فرم محیط اکسس بکار ببرم و فرمها در محیط اکسس خاصیت ScaleWidth و ScaleHeight ندارند اول بفرمائید کاربرد این دو خاصیت چی می باشد و در صورت امکان از کدهای نمونه 5 استفاده نمائید .

با تشکر فراوان