カーソルが Holiday に配置されているかどうかを決定するためのヒットテストで、GetHolidayFromPoint メソッドは役に立ちます。
Imports Infragistics.Win Imports Infragistics.Win.UltraWinSchedule Imports Infragistics.Win.UltraWinSchedule.MonthViewSingle Private Sub GetObjectsFromPoint(ByVal point As Point, ByVal objects As Object()) ' 必要な各型のオブジェクトを宣言します Dim appointment As Appointment Dim holiday As Holiday Dim note As Note Dim day As Infragistics.Win.UltraWinSchedule.Day Dim dayOfWeek As Infragistics.Win.UltraWinSchedule.DayOfWeek Dim week As Week ' 予定を取得するために、GetAppointmentFromPoint メソッドを使用します ' ここに Nothing が返された場合、Appointment はありません appointment = Me.UltraMonthViewSingle1.GetAppointmentFromPoint(point.X, point.Y) ' 休日を取得するために、GetHolidayFromPoint メソッドを使用します ' ここに Nothing が返された場合、Holiday はありません holiday = Me.UltraMonthViewSingle1.GetHolidayFromPoint(point.X, point.Y) ' メモを取得するために、GetNoteFromPoint メソッドを使用します ' ここに Nothing が返された場合、Note はありません note = Me.UltraMonthViewSingle1.GetNoteFromPoint(point.X, point.Y) ' 日を取得するために、GetDayFromPoint メソッドを使用します ' ここに Nothing が返された場合、日がありません day = Me.UltraMonthViewSingle1.GetDayFromPoint(point.X, point.Y) ' 曜日を取得するために、GetDayOfWeekFromPoint メソッドを使用します ' ここに Nothing が返された場合、DayOfWeek はありません dayOfWeek = Me.UltraMonthViewSingle1.GetDayOfWeekFromPoint(point.X, point.Y) ' 週を取得するために、GetWeekFromPoint メソッドを使用します ' ここに Nothing が返された場合、週がありません week = Me.UltraMonthViewSingle1.GetWeekFromPoint(point.X, point.Y) ' 各の null 値以外のオブジェクトを新しい ArrayList に追加します ' ArrayList を配列に変換し、'objects' の出力パラメーターに ' 割り当てます Dim objectsFound As ArrayList = New ArrayList() ' 有効な各オブジェクトを配列リストに追加します If Not appointment Is Nothing Then objectsFound.Add(appointment) If Not holiday Is Nothing Then objectsFound.Add(holiday) If Not note Is Nothing Then objectsFound.Add(note) If Not day Is Nothing Then objectsFound.Add(day) If Not dayOfWeek Is Nothing Then objectsFound.Add(dayOfWeek) If Not week Is Nothing Then objectsFound.Add(week) ' 見つけたエンティティをオブジェクト配列として返します objects = objectsFound.ToArray() ' 見つけたオブジェクトをデバッガーへ出力します Debug.WriteLine(objects.Length.ToString() + " UltraWinSchedule objects were found: " + vbCrLf) Dim i As Integer For i = 0 To objects.Length - 1 Debug.WriteLine(objects(i).GetType().ToString()) Next End Sub
using Infragistics.Win; using Infragistics.Win.UltraWinSchedule; using Infragistics.Win.UltraWinSchedule.MonthViewSingle; using System.Diagnostics; private void GetObjectsFromPoint( Point point, out object[] objects ) { // 必要な各型のオブジェクトを宣言します Appointment appointment = null; Holiday holiday = null; Note note = null; Infragistics.Win.UltraWinSchedule.Day day = null; Infragistics.Win.UltraWinSchedule.DayOfWeek dayOfWeek = null; Infragistics.Win.UltraWinSchedule.Week week = null; // 予定を取得するために、GetAppointmentFromPoint メソッドを使用します // ここに null を返すと、Appointment がありません appointment = this.ultraMonthViewSingle1.GetAppointmentFromPoint( point.X, point.Y ); // 休日を取得するために、GetHolidayFromPoint メソッドを使用します // ここに null を返すと、Holiday がありません holiday = this.ultraMonthViewSingle1.GetHolidayFromPoint( point.X, point.Y ); // メモを取得するために、GetNoteFromPoint メソッドを使用します // ここに null を返すと、Note がありません note = this.ultraMonthViewSingle1.GetNoteFromPoint( point.X, point.Y ); // 日を取得するために、GetDayFromPoint メソッドを使用します // ここに null を返すと、日がありません day = this.ultraMonthViewSingle1.GetDayFromPoint( point.X, point.Y ); // 曜日を取得するために、GetDayOfWeekFromPoint メソッドを使用します // ここに null を返すと、DayOfWeek がありません dayOfWeek = this.ultraMonthViewSingle1.GetDayOfWeekFromPoint(point.X, point.Y ); // 週を取得するために、GetWeekFromPoint メソッドを使用します // ここに null を返すと、週がありません week = this.ultraMonthViewSingle1.GetWeekFromPoint( point.X, point.Y ); // 各の null 値以外のオブジェクトを新しい ArrayList に追加します // ArrayList を配列に変換し、'objects' の出力パラメーターに // 割り当てます ArrayList objectsFound = new ArrayList(); if ( appointment != null ) objectsFound.Add( appointment ); if ( holiday != null ) objectsFound.Add( holiday ); if ( note != null ) objectsFound.Add( note ); if ( day != null ) objectsFound.Add( day ); if ( dayOfWeek != null ) objectsFound.Add( dayOfWeek ); if ( week != null ) objectsFound.Add( week ); // 見つけたエンティティをオブジェクト配列として返します objects = objectsFound.ToArray(); // デバッガーに見つけたオブジェクトを出力します Debug.WriteLine( objects.Length.ToString() + " UltraWinSchedule objects were found: " + "\n" ); for ( int i = 0; i < objects.Length; i ++ ) { Debug.WriteLine( objects[ i ].GetType().ToString() ); } }