[Vb.net] Creazione Controllo personalizzato

martedì 05 aprile 2005 - 16.57

Andy Profilo | Senior Member

Ciao a tutti..quesito che mi blocca..per esperimento sto creando un controllo mio sulla base di un controllo MonthCalendar, in cui gli aggiungo solo una proprietà in più che mi restituisce il numero della settimana del giorno selezionato.
Creo progetto, creo classe:


Public Class MyCalendarEx
Inherits System.Windows.Forms.MonthCalendar

Dim NrSett As Integer

Property NrSettimana() As Integer
Get
Return NrSett
End Get
Set(ByVal Value As Integer)
Dim Day As Object

Day = Me.SelectionStart()
Try
NrSett = DatePart(DateInterval.WeekOfYear, Day, FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)
Catch ex As Exception
MessageBox.Show(ex.Message, Me.SelectionStart.ToString, MessageBoxButtons.OK)
End Try

End Set
End Property

End Class


..ma nonostante la sintassi del DatePart sia corretta, mi da un'errore strano, ossia:

Risoluzione dell'overload non riuscita perché nessun "DatePart" accessibile può essere chiamato senza una conversione verso un tipo di dati più piccolo:
"Public Function DatePart(Interval As String, DateValue As Object, [DayOfWeek As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [WeekOfYear As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Integer": Il parametro "Interval" corrispondente all'argomento viene convertito da "Microsoft.VisualBasic.DateInterval" a "String", più piccolo.
"Public Function DatePart(Interval As String, DateValue As Object, [DayOfWeek As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [WeekOfYear As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Integer": Il parametro "DayOfWeek" corrispondente all'argomento viene convertito da "System.Windows.Forms.Day" a "Microsoft.VisualBasic.FirstDayOfWeek", più piccolo.
"Public Function DatePart(Interval As Microsoft.VisualBasic.DateInterval, DateValue As Date, [FirstDayOfWeekValue As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [FirstWeekOfYearValue As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Integer": Il parametro "DateValue" corrispondente all'argomento viene convertito da "System.Object" a "Date", più piccolo.
"Public Function DatePart(Interval As Microsoft.VisualBasic.DateInterval, DateValue As Date, [FirstDayOfWeekValue As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [FirstWeekOfYearValue As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Integer": Il parametro "FirstDayOfWeekValue" corrispondente all'argomento viene convertito da "System.Windows.Forms.Day" a "Microsoft.VisualBasic.FirstDayOfWeek", più piccolo.

Qualcuno mi può aiutare?

Grazie..

Andy Profilo | Senior Member

Ok, ora funziona, ma mi da solo il primo numero settimana, e non ogni volta che clicco e cambio data.. ho provato a fare Override della Sub DateChanged..ma non cambia nulla...dove sbaglio?

Protected Overrides Sub OnDateChanged(ByVal drevent As System.Windows.Forms.DateRangeEventArgs)
Day = MyBase.SelectionStart ' Day è Private, quindi accessibile

MyBase.OnDateChanged(drevent)
End Sub


..qualche idea?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5