حرکت دادن کنترلها در RunTime
برای امکان حرکت دادن یا Moving کنترلها ، در هنگام اجرای برنامه کافیست روال زیر رو به پروژه اضافه کنید:
کد:
Private Sub MouseDragging(ByVal e As MouseEventArgs, ByVal Control As Control)
Static OldPosition AsNew Point(-1, -1)
IfNot (e.Button = Nothing) Then
If e.Button = Windows.Forms.MouseButtons.Left Then
If (OldPosition.X = -1) And (OldPosition.Y = -1) Then OldPosition = New Point(e.X, e.Y)
If e.Y <> OldPosition.Y Then
Control.Top += e.Y - OldPosition.Y
'move Up/Down
EndIf
If e.X <> OldPosition.X Then
Control.Left += e.X - OldPosition.X
'move Left/Right
End If
End If
Else
'button is nothing, maybe it was lifted.
OldPosition = New Point(-1, -1)
EndIf
EndSub
روش استفاده:
یک کنترل از نوع Button روی فرم فرار دهید و در رویداد MouseMove کد زیر را وارد نمایید:
MouseDragging(e, Button1)X
تبدیل تاریخ از/به شمسی و دیگر تقویم ها
سلام
این را برای یک سایت یکی از دوستانم نوشته بودم که عیناً در اینجا هم کپی کردم.
تبدیل به میلادی
کد:
Dim x As New System.Globalization.PersianCalendar
Dim dt As Date = x.ToDateTime(1386, 1, 1, 0, 0, 0, 0, 0)
تبدیل از میلادی
کد:
Dim x As New System.Globalization.PersianCalendar()
Dim dt As Date
dt = #1/1/2007#
'Or یا
dt = New Date(2007, 1, 1)
'Or یا
dt = CDate("1/1/2007")
Dim y As Integer = x.GetYear(dt)
Dim m As Integer = x.GetMonth(dt)
Dim d As Integer = x.GetDayOfMonth(dt)
برای تبدیل از/به میلادی بر اساس تقویم های دیگرف کافیست به جای کلاسس PersianCalendar کلاسس تقویم مورد نظر را نمونه سازی کرد.
دات نت 2 با تقویم میلادی در کل شامل 11 تقویم است!
مثلاً PersianCalendar تقویم ایرانی یا همان هجری شمسی است
یا HijriCalendar تقویم هجری قمری است
JapaneseCalendar ژاپنی
KoreanCalendar کره ای
TaiwanCalendar تایوانی
و...
برای تبدیل تاریخ های تقویم های دیگر به هم (که یک سرش میلادی نباشد) باید اول تاریخ مورد نظر را به میلادی تبدیل کرد و سپس میلادی را به تقویم دوم تبدیل کرد.
برای تبدیل به نام روزها و ماه هم بهتر است از آرایه String استفاده کنید نه دستورات IF و یا Select
یک آرایه 12 عنصری که مثلاً نام تمام ماه ها را دارد و فقط کافیست ایندکس را بدهید.....
عیر فعال کردن دکمه Close فرم
نقل قول:
برای این کار کافیست کد زیر رو در هر جایی از کد ادیتور که میخواهید بنویسید ( البته خارج از روال ها ) :
کد:
Private _closeClick AsBoolean
PublicConst SC_CLOSE AsInteger = 61536
PublicConst WM_SYSCOMMAND AsInteger = 274
ProtectedOverloadsOverridesSub WndProc(ByRef m As Message)
If m.Msg = WM_SYSCOMMAND AndAlso m.WParam.ToInt32 = SC_CLOSE Then
ExitSub
Else
Me._closeClick = True
EndIf
MyBase.WndProc(m)
EndSub
این کارو میشه به همین راحتی انجام داد ! ! !
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = -1
End Sub