echoopanian
جمعه 15 آذر 1387, 20:40 عصر
با سلام
دارم یک پروژه زمانبندی جلسات را به وسیله Vb.net می نوییسم که در این پروژه از کنترل تقویم شمسی استفاده کرده ام مشکلی که اینجا دارم این است که می خواهم با کلیک کردن برروی دکمه next week تقویم من به صورت یک هفته یک هفته جلو برود نه به صورت یک ماه یک ماه خواهش می کنم کمکم کنید.اگر می توانید
این هم سورس برنامه تقویم شمسی من است :
Imports System.ComponentModel
Imports System.Globalization
Public
Class ExCalendar
Private mSelectedDate As DateTime = Now
Dim mCurrentCalendarDate As DateTime = Now
Dim mPCal AsNew PersianCalendar()
Dim mMonthNames() AsString = {"", "ه©ي§یë", "ں©§ی ى¬¢", "¦©§ں§", "¢ی©", "ê
©§ں§", "¬ى©یي©", "êى©", "™ ںë", "™¨©", "§ی", " ىêë", "ں«هë§", ""}
در این قسمت نام ماهها را در یک آرایه ریخته ام
PublicEvent CalendarDateSelected As EventHandler
PublicSubNew()
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.DrawCalendar()
EndSub
#
Region"Properties"
PublicProperty SelectedDate() As DateTime
Get
Return mSelectedDate
EndGet
Set(ByVal value As DateTime)
mSelectedDate = value
Me.DrawCalendar()
EndSet
EndProperty
#
EndRegion
#
Region"Private Methodes"
PrivateSub DrawCalendar()
Dim mStartDate As DateTime
Dim mEndDate As DateTime
Dim mCalendarStartDate As DateTime
TableLayoutPanel1.Controls.Clear()
mStartDate = New DateTime(mPCal.GetYear(mCurrentCalendarDate), mPCal.GetMonth(mCurrentCalendarDate), 1, New PersianCalendar())
mEndDate = New DateTime(mPCal.GetYear(mCurrentCalendarDate), mPCal.GetMonth(mCurrentCalendarDate), mPCal.GetDaysInMonth(mPCal.GetYear(mCurrentCalenda rDate), mPCal.GetMonth(mCurrentCalendarDate)), New PersianCalendar())
Dim intOffset AsByte = 0
SelectCase mStartDate.DayOfWeek
Case DayOfWeek.Saturday
intOffset = 0
Case DayOfWeek.Sunday
intOffset = 1
Case DayOfWeek.Monday
intOffset = 2
Case DayOfWeek.Tuesday
intOffset = 3
Case DayOfWeek.Wednesday
intOffset = 4
Case DayOfWeek.Thursday
intOffset = 5
Case DayOfWeek.Friday
intOffset = 6
EndSelect
mCalendarStartDate = mStartDate.AddDays(intOffset * -1)
Dim mCalendarDate As DateTime = mCalendarStartDate
IfMe.NumericUpDown1.Value <> mPCal.GetYear(mCurrentCalendarDate) Then
Me.NumericUpDown1.Value = mPCal.GetYear(Now)
EndIf
lblCalendarTitle.Text = mPCal.GetYear(mCurrentCalendarDate) &
" " & mMonthNames(mPCal.GetMonth(mCurrentCalendarDate))
Me.lblTodayString.Text = mPCal.GetYear(Now) & " " & mMonthNames(mPCal.GetMonth(Now)) & " " & mPCal.GetDayOfMonth(Now)
For ix AsInteger = 0 To 41
Dim mBtn AsNew Button()
mBtn.Text = mPCal.GetDayOfMonth(mCalendarDate)
mBtn.Dock = DockStyle.Fill
mBtn.FlatStyle = FlatStyle.Popup
If mPCal.GetMonth(Now) = mPCal.GetMonth(mCalendarDate) And _
mPCal.GetDayOfMonth(Now) = mPCal.GetDayOfMonth(mCalendarDate) And _
mPCal.GetYear(Now) = mPCal.GetYear(mCalendarDate) _
Then mBtn.BackColor = Color.LightGreen
If mPCal.GetMonth(Me.SelectedDate) = mPCal.GetMonth(mCalendarDate) And _
mPCal.GetDayOfMonth(Me.SelectedDate) = mPCal.GetDayOfMonth(mCalendarDate) And _
mPCal.GetYear(Me.SelectedDate) = mPCal.GetYear(mCalendarDate) _
Then mBtn.BackColor = Color.LightPink
AddHandler mBtn.Click, AddressOfMe.ClickedButton
mBtn.Tag = mCalendarDate
TableLayoutPanel1.Controls.Add(mBtn)
mCalendarDate = mCalendarDate.AddDays(1)
Next
EndSub
PrivateSub MonthChanged(ByVal mNum AsByte)
Try
mCurrentCalendarDate =
New DateTime(NumericUpDown1.Value, mNum, mPCal.GetDayOfMonth(mCurrentCalendarDate), New PersianCalendar())
Me.DrawCalendar()
Catch ex As Exception
EndTry
EndSub
#EndRegion
PrivateSub ClickedButton(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.SelectedDate = CType(sender, Button).Tag
RaiseEvent CalendarDateSelected(Me, e)
EndSub
PrivateSub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
mCurrentCalendarDate = mCurrentCalendarDate.AddMonths(1)
Me.DrawCalendar()
EndSub
PrivateSub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click
mCurrentCalendarDate = mCurrentCalendarDate.AddMonths(-1)
Me.DrawCalendar()
EndSub
PrivateSub lblToday_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblToday.Click
mCurrentCalendarDate = Now
Me.DrawCalendar()
EndSub
PrivateSub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
Try
mCurrentCalendarDate =
New DateTime(NumericUpDown1.Value, mPCal.GetMonth(mCurrentCalendarDate), mPCal.GetDayOfMonth(mCurrentCalendarDate), New PersianCalendar())
Me.DrawCalendar()
Catch ex As Exception
EndTry
EndSub
PrivateSub m1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m1.Click
MonthChanged(1)
EndSub
PrivateSub m2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m2.Click
MonthChanged(2)
EndSub
PrivateSub m3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m3.Click
MonthChanged(3)
EndSub
PrivateSub m4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m4.Click
MonthChanged(4)
EndSub
PrivateSub m5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m4.Click
MonthChanged(5)
EndSub
PrivateSub m6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m6.Click
MonthChanged(6)
EndSub
PrivateSub m7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m7.Click
MonthChanged(7)
EndSub
PrivateSub m8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m8.Click
MonthChanged(8)
EndSub
PrivateSub m9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m9.Click
MonthChanged(9)
EndSub
PrivateSub m10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m10.Click
MonthChanged(10)
EndSub
PrivateSub m11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m11.Click
MonthChanged(11)
EndSub
PrivateSub m12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m12.Click
MonthChanged(12)
EndSub
EndClass
دارم یک پروژه زمانبندی جلسات را به وسیله Vb.net می نوییسم که در این پروژه از کنترل تقویم شمسی استفاده کرده ام مشکلی که اینجا دارم این است که می خواهم با کلیک کردن برروی دکمه next week تقویم من به صورت یک هفته یک هفته جلو برود نه به صورت یک ماه یک ماه خواهش می کنم کمکم کنید.اگر می توانید
این هم سورس برنامه تقویم شمسی من است :
Imports System.ComponentModel
Imports System.Globalization
Public
Class ExCalendar
Private mSelectedDate As DateTime = Now
Dim mCurrentCalendarDate As DateTime = Now
Dim mPCal AsNew PersianCalendar()
Dim mMonthNames() AsString = {"", "ه©ي§یë", "ں©§ی ى¬¢", "¦©§ں§", "¢ی©", "ê
©§ں§", "¬ى©یي©", "êى©", "™ ںë", "™¨©", "§ی", " ىêë", "ں«هë§", ""}
در این قسمت نام ماهها را در یک آرایه ریخته ام
PublicEvent CalendarDateSelected As EventHandler
PublicSubNew()
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.DrawCalendar()
EndSub
#
Region"Properties"
PublicProperty SelectedDate() As DateTime
Get
Return mSelectedDate
EndGet
Set(ByVal value As DateTime)
mSelectedDate = value
Me.DrawCalendar()
EndSet
EndProperty
#
EndRegion
#
Region"Private Methodes"
PrivateSub DrawCalendar()
Dim mStartDate As DateTime
Dim mEndDate As DateTime
Dim mCalendarStartDate As DateTime
TableLayoutPanel1.Controls.Clear()
mStartDate = New DateTime(mPCal.GetYear(mCurrentCalendarDate), mPCal.GetMonth(mCurrentCalendarDate), 1, New PersianCalendar())
mEndDate = New DateTime(mPCal.GetYear(mCurrentCalendarDate), mPCal.GetMonth(mCurrentCalendarDate), mPCal.GetDaysInMonth(mPCal.GetYear(mCurrentCalenda rDate), mPCal.GetMonth(mCurrentCalendarDate)), New PersianCalendar())
Dim intOffset AsByte = 0
SelectCase mStartDate.DayOfWeek
Case DayOfWeek.Saturday
intOffset = 0
Case DayOfWeek.Sunday
intOffset = 1
Case DayOfWeek.Monday
intOffset = 2
Case DayOfWeek.Tuesday
intOffset = 3
Case DayOfWeek.Wednesday
intOffset = 4
Case DayOfWeek.Thursday
intOffset = 5
Case DayOfWeek.Friday
intOffset = 6
EndSelect
mCalendarStartDate = mStartDate.AddDays(intOffset * -1)
Dim mCalendarDate As DateTime = mCalendarStartDate
IfMe.NumericUpDown1.Value <> mPCal.GetYear(mCurrentCalendarDate) Then
Me.NumericUpDown1.Value = mPCal.GetYear(Now)
EndIf
lblCalendarTitle.Text = mPCal.GetYear(mCurrentCalendarDate) &
" " & mMonthNames(mPCal.GetMonth(mCurrentCalendarDate))
Me.lblTodayString.Text = mPCal.GetYear(Now) & " " & mMonthNames(mPCal.GetMonth(Now)) & " " & mPCal.GetDayOfMonth(Now)
For ix AsInteger = 0 To 41
Dim mBtn AsNew Button()
mBtn.Text = mPCal.GetDayOfMonth(mCalendarDate)
mBtn.Dock = DockStyle.Fill
mBtn.FlatStyle = FlatStyle.Popup
If mPCal.GetMonth(Now) = mPCal.GetMonth(mCalendarDate) And _
mPCal.GetDayOfMonth(Now) = mPCal.GetDayOfMonth(mCalendarDate) And _
mPCal.GetYear(Now) = mPCal.GetYear(mCalendarDate) _
Then mBtn.BackColor = Color.LightGreen
If mPCal.GetMonth(Me.SelectedDate) = mPCal.GetMonth(mCalendarDate) And _
mPCal.GetDayOfMonth(Me.SelectedDate) = mPCal.GetDayOfMonth(mCalendarDate) And _
mPCal.GetYear(Me.SelectedDate) = mPCal.GetYear(mCalendarDate) _
Then mBtn.BackColor = Color.LightPink
AddHandler mBtn.Click, AddressOfMe.ClickedButton
mBtn.Tag = mCalendarDate
TableLayoutPanel1.Controls.Add(mBtn)
mCalendarDate = mCalendarDate.AddDays(1)
Next
EndSub
PrivateSub MonthChanged(ByVal mNum AsByte)
Try
mCurrentCalendarDate =
New DateTime(NumericUpDown1.Value, mNum, mPCal.GetDayOfMonth(mCurrentCalendarDate), New PersianCalendar())
Me.DrawCalendar()
Catch ex As Exception
EndTry
EndSub
#EndRegion
PrivateSub ClickedButton(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.SelectedDate = CType(sender, Button).Tag
RaiseEvent CalendarDateSelected(Me, e)
EndSub
PrivateSub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
mCurrentCalendarDate = mCurrentCalendarDate.AddMonths(1)
Me.DrawCalendar()
EndSub
PrivateSub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click
mCurrentCalendarDate = mCurrentCalendarDate.AddMonths(-1)
Me.DrawCalendar()
EndSub
PrivateSub lblToday_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblToday.Click
mCurrentCalendarDate = Now
Me.DrawCalendar()
EndSub
PrivateSub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
Try
mCurrentCalendarDate =
New DateTime(NumericUpDown1.Value, mPCal.GetMonth(mCurrentCalendarDate), mPCal.GetDayOfMonth(mCurrentCalendarDate), New PersianCalendar())
Me.DrawCalendar()
Catch ex As Exception
EndTry
EndSub
PrivateSub m1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m1.Click
MonthChanged(1)
EndSub
PrivateSub m2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m2.Click
MonthChanged(2)
EndSub
PrivateSub m3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m3.Click
MonthChanged(3)
EndSub
PrivateSub m4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m4.Click
MonthChanged(4)
EndSub
PrivateSub m5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m4.Click
MonthChanged(5)
EndSub
PrivateSub m6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m6.Click
MonthChanged(6)
EndSub
PrivateSub m7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m7.Click
MonthChanged(7)
EndSub
PrivateSub m8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m8.Click
MonthChanged(8)
EndSub
PrivateSub m9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m9.Click
MonthChanged(9)
EndSub
PrivateSub m10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m10.Click
MonthChanged(10)
EndSub
PrivateSub m11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m11.Click
MonthChanged(11)
EndSub
PrivateSub m12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m12.Click
MonthChanged(12)
EndSub
EndClass