Version

UltraWeekViewAction Enumeration

Enumerates the possible actions that can be performed on the Infragistics.Win.UltraWinSchedule.UltraWeekView control.
Syntax
'Declaration
 
Public Enum UltraWeekViewAction 
   Inherits System.Enum
public enum UltraWeekViewAction : System.Enum 
Members
MemberDescription
AddNewAppointmentAdds an Infragistics.Win.UltraWinSchedule.Appointment to the Infragistics.Win.UltraWinSchedule.UltraCalendarInfo.ActiveDay, and performs the EnterEditMode action on the new Infragistics.Win.UltraWinSchedule.Appointment.

DayToTheLeftNavigate to the previous System.Windows.Forms.Day whose System.DayOfWeek property is the same as the current Day.

Note that the target System.Windows.Forms.Day must be Infragistics.Win.UltraWinSchedule.Day.Enabled.
DayToTheRightNavigate to the next System.Windows.Forms.Day whose System.DayOfWeek property is the same as the current Day.

Note that the target System.Windows.Forms.Day must be Infragistics.Win.UltraWinSchedule.Day.Enabled.
DisplayAppointmentDialogDisplays the Infragistics.Win.UltraWinSchedule.AppointmentDialog.

Note that there must be at least one Infragistics.Win.UltraWinSchedule.Appointment selected for this action to succeed.
EnterEditModePlace the currently selected activity (Infragistics.Win.UltraWinSchedule.Appointment or Infragistics.Win.UltraWinSchedule.Note) into edit mode (display its editor).

Note that a required state of this action is that there be only one selected activity.

Note that Infragistics.Win.UltraWinSchedule.Holidays are not editable via the user interface, and as such are ignored by this action.
ExitEditModeAndCancelChangesExits edit mode, and discards any changes that were made by the user.

Note that a required state of this action is that the control is in edit mode.

Note that Infragistics.Win.UltraWinSchedule.Holidays are not editable via the user interface, and as such are ignored by this action.
ExitEditModeAndSaveChangesExits edit mode, and commits any changes that were made by the user to its associated activity (Infragistics.Win.UltraWinSchedule.Appointment or Infragistics.Win.UltraWinSchedule.Note).

Note that a required state of this action is that the control is in edit mode.

Note that Infragistics.Win.UltraWinSchedule.Holidays are not editable via the user interface, and as such are ignored by this action.
FirstDayInWeekNavigate to the first System.Windows.Forms.Day in the current Infragistics.Win.UltraWinSchedule.Week.

Note that the target System.Windows.Forms.Day must be Infragistics.Win.UltraWinSchedule.Day.Enabled.
LastDayInWeekNavigate to the last System.Windows.Forms.Day in the current Infragistics.Win.UltraWinSchedule.Week.

Note that the target System.Windows.Forms.Day must be Infragistics.Win.UltraWinSchedule.Day.Enabled.
NextActivityByTabNavigate to the next activity (Infragistics.Win.UltraWinSchedule.Appointment or Infragistics.Win.UltraWinSchedule.Note) via the System.Windows.Forms.Keys.Tab key, and display its editor.

Note that Infragistics.Win.UltraWinSchedule.Holidays are not editable via the user interface, and as such are ignored by this action.
NextDayNavigate to the next System.Windows.Forms.Day whose Infragistics.Win.UltraWinSchedule.Day.Enabled property is True.
PreviousActivityByTabNavigate to the previous activity (Infragistics.Win.UltraWinSchedule.Appointment or Infragistics.Win.UltraWinSchedule.Note) via the System.Windows.Forms.Keys.Shift+System.Windows.Forms.Keys.Tab key combination, and display its editor.

Note that Infragistics.Win.UltraWinSchedule.Holidays are not editable via the user interface, and as such are ignored by this action.
PreviousDayNavigate to the previous System.Windows.Forms.Day whose Infragistics.Win.UltraWinSchedule.Day.Enabled property is True.
RemoveSelectedActivitiesRemove all selected activities (Infragistics.Win.UltraWinSchedule.Appointments and/or Infragistics.Win.UltraWinSchedule.Notes) from their respective collections.

Note that Infragistics.Win.UltraWinSchedule.Holidays are not selectable, and as such are never affected by this action.
ScrollDownByLargeChangeScroll the control down by the number of weeks specified by the control's Infragistics.Win.UltraWinSchedule.UltraWeekView.ScrollChangeLarge property.
ScrollUpByLargeChangeScroll the control up by the number of weeks specified by the control's Infragistics.Win.UltraWinSchedule.UltraWeekView.ScrollChangeLarge property.
ToggleDaySelectionToggle Infragistics.Win.UltraWinSchedule.Day.Selected state of the Infragistics.Win.UltraWinSchedule.UltraCalendarInfo.ActiveDay.
Example
Demonstrates how to customize the control's KeyActionMappings collection so that a non-default keystroke can be assigned to perform an application-specific action. This example adds a KeyActionMapping for the F2 key which exits edit mode on an Appointment or Note, saving any changes that were made. It also prompts the user to decide whether they want to remove existing mappings for that key.

Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports Infragistics.Win.UltraWinSchedule.WeekView

    Private Sub CustomizeKeyActionMappings()

        '	Create a new KeyActionMapping object, which we will add to
        '	the control's KeyActionMappings collection. The new KeyActionMapping
        '	object will have the following property settings:
        '
        '	KeyCode = F2
        '	ActionCode = ExitEditModeAndSaveChanges
        '	StateDisallowed = 0 (no disallowed state)
        '	StateRequired = ActivityInEditMode
        '	SpecialKeysDisallowed = All (disallow the action if either Alt, Ctrl, or Shift is pressed)
        '	SpecialKeysRequired = 0 (no special keys required to perform the action)
        '
        Dim keyToMap As Keys = Keys.F2

        Dim keyMappingToAdd As New KeyActionMapping(keyToMap, UltraWeekViewAction.ExitEditModeAndSaveChanges, 0, UltraWeekViewState.ActivityInEditMode, SpecialKeys.All, 0)

        '	Let's display a MessageBox with the properties of the KeyActionMapping
        '	before adding it to the collection, to make sure the user wants to add it.
        Dim msg As String = "The following KeyActionMapping will be added to the KeyActionMappings collection:" + vbCrLf + vbCrLf
        msg += "The keystoke the action will respond to is: " + keyMappingToAdd.KeyCode.ToString() + vbCrLf
        msg += "The action that will be performed when the key is pressed is: " + keyMappingToAdd.ActionCode.ToString() + vbCrLf
        msg += "The disallowed state for the action is (zero indicates no disallowed state): " + keyMappingToAdd.StateDisallowed.ToString() + vbCrLf
        msg += "The required state for the action is (zero indicates no required state): " + keyMappingToAdd.StateRequired.ToString() + vbCrLf
        msg += "The action will not be performed if any of the following special keys are pressed (zero indicates no special keys are disallowed): " + keyMappingToAdd.SpecialKeysDisallowed.ToString() + vbCrLf
        msg += "The action will only be performed if all of the following special keys are pressed (zero indicates no special keys are required): " + keyMappingToAdd.SpecialKeysRequired.ToString() + vbCrLf
        msg += vbCrLf + "Are you sure you want to add the custom KeyActionMapping?" + vbCrLf

        '	Show the message box
        Dim result As DialogResult = MessageBox.Show(msg, "Add KeyActionMapping", MessageBoxButtons.YesNo)

        '	If the user answers No, return, leaving the default KeyActionMappings unaffected
        If result = DialogResult.No Then Return

        '	We will add the KeyActionMapping to the control's KeyActionMappings collection, but before we do, let's see if the user wants to remove any existing ones for that keystroke
        '			
        '	Iterate the KeyActionMappings collection and get a count on the number of existing mappings for the given keystroke
        '
        '	While were are iterating this collection, let's build a string that lists
        '	the actions mapped to the given keystroke, so we can display them
        '	to the user to help them decide whether they want to remove them.
        Dim count As Integer = 0
        Dim mapList As String = String.Empty
        Dim keyMapping As KeyActionMapping
        For Each keyMapping In Me.ultraWeekView.KeyActionMappings
            If keyMapping.KeyCode = keyToMap Then
                count += 1
                mapList += keyMapping.ActionCode.ToString() + vbCrLf
            End If
        Next

        '	If there were none, there is no point in prompting the user, so add the
        '	custom mapping and return
        If count = 0 Then
            Me.ultraWeekView.KeyActionMappings.Add(keyMappingToAdd)
            '	Add an appointment so they can test it out
            Me.ultraWeekView.CalendarInfo.Appointments.Add(DateTime.Now, DateTime.Now.AddMinutes(30), "My Appointment")
            Return
        End If

        '	Notify the user that there are existing mappings, and see if they want to remove them
        msg = "The KeyActionMappings collection already contains the following mappings for " + keyToMap.ToString() + ":" + vbCrLf + vbCrLf
        msg += mapList + vbCrLf
        msg += "Do you want to remove the existing mappings for " + keyToMap.ToString() + "?"

        '	Show the message box
        result = MessageBox.Show(msg, "Remove existing KeyActionMappings", MessageBoxButtons.YesNo, MessageBoxIcon.Information)

        '	If the user answers No, return, leaving the existing KeyActionMappings collection unaffected
        If result = DialogResult.No Then
            Me.ultraWeekView.KeyActionMappings.Add(keyMappingToAdd)
            '	Add an appointment so they can test it out
            Me.ultraWeekView.CalendarInfo.Appointments.Add(DateTime.Now, DateTime.Now.AddMinutes(30.0F), "My Appointment")
            Return
        End If

        '	Remove all KeyActionMappings whose KeyCode property is set to the key we are mapping
        For Each keyMapping In Me.ultraWeekView.KeyActionMappings
            If keyMapping.KeyCode = keyToMap Then Me.ultraWeekView.KeyActionMappings.Remove(keyMapping)
        Next

        '	Now we can add the custom mapping
        Me.ultraWeekView.KeyActionMappings.Add(keyMappingToAdd)

        '	Notify the user that all other mappings were removed
        msg = "All existing mappings for " + keyToMap.ToString() + " successfully removed." + vbCrLf
        MessageBox.Show(msg, "Remove existing KeyActionMappings", MessageBoxButtons.OK)

        '	Add an appointment so they can test it out
        Me.ultraWeekView.CalendarInfo.Appointments.Add(DateTime.Now, DateTime.Now.AddMinutes(30.0F), "My Appointment")

    End Sub
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using Infragistics.Win.UltraWinSchedule.WeekView;
using System.Diagnostics;

		private void CustomizeKeyActionMappings()
		{

			//	Create a new KeyActionMapping object, which we will add to
			//	the control's KeyActionMappings collection. The new KeyActionMapping
			//	object will have the following property settings:
			//
			//	KeyCode = F2
			//	ActionCode = ExitEditModeAndSaveChanges
			//	StateDisallowed = 0 (no disallowed state)
			//	StateRequired = ActivityInEditMode
			//	SpecialKeysDisallowed = All (disallow the action if either Alt, Ctrl, or Shift is pressed)
			//	SpecialKeysRequired = 0 (no special keys required to perform the action)
			//
			Keys keyToMap = Keys.F2;
			KeyActionMapping keyMappingToAdd =
				new KeyActionMapping( keyToMap,	//	KeyCode
												 UltraWeekViewAction.ExitEditModeAndSaveChanges,		//	ActionCode
												 0,		//	StateDisallowed
												 UltraWeekViewState.ActivityInEditMode,		//	StateRequired
												 SpecialKeys.All,	//	SpecialKeysDisallowed
												 0 		//	SpecialKeysRequired
												);
			
			//	Let's display a MessageBox with the properties of the KeyActionMapping
			//	before adding it to the collection, to make sure the user wants to add it.
			string msg = "The following KeyActionMapping will be added to the KeyActionMappings collection:\n\n";
			msg += "The keystoke the action will respond to is: " + keyMappingToAdd.KeyCode.ToString() + "\n";
			msg += "The action that will be performed when the key is pressed is: " + keyMappingToAdd.ActionCode.ToString() + "\n";
			msg += "The disallowed state for the action is (zero indicates no disallowed state): " + keyMappingToAdd.StateDisallowed.ToString() + "\n";
			msg += "The required state for the action is (zero indicates no required state): " + keyMappingToAdd.StateRequired.ToString() + "\n";
			msg += "The action will not be performed if any of the following special keys are pressed (zero indicates no special keys are disallowed): " + keyMappingToAdd.SpecialKeysDisallowed.ToString() + "\n";
			msg += "The action will only be performed if all of the following special keys are pressed (zero indicates no special keys are required): " + keyMappingToAdd.SpecialKeysRequired.ToString() + "\n";
			msg += "\nAre you sure you want to add the custom KeyActionMapping?\n";

			//	Show the message box
			DialogResult result = MessageBox.Show( msg, "Add KeyActionMapping", MessageBoxButtons.YesNo );

			//	If the user answers No, return, leaving the default KeyActionMappings unaffected
			if ( result == DialogResult.No )
				return;

			//	We will add the KeyActionMapping to the control's KeyActionMappings collection, but before we do, let's see if the user wants to remove any existing ones for that keystroke
			//	Iterate the KeyActionMappings collection and get a count on the number of existing mappings for the given keystroke
			//	While were are iterating this collection, let's build a string that lists the actions mapped to the given keystroke, so we can display them to the user to help them decide whether they want to remove them.
			int count = 0;
			string mapList = string.Empty;
			foreach( KeyActionMapping keyMapping in this.ultraWeekView.KeyActionMappings )
			{
				if ( keyMapping.KeyCode == keyToMap )
				{
					count ++;
					mapList += keyMapping.ActionCode.ToString() + "\n";

				}
			}

			//	If there were none, there is no point in prompting the user, so add the
			//	custom mapping and return
			if ( count == 0 )
			{
				this.ultraWeekView.KeyActionMappings.Add( keyMappingToAdd );
				//	Add an appointment so they can test it out
				this.ultraWeekView.CalendarInfo.Appointments.Add( DateTime.Now, DateTime.Now.AddMinutes( 30.0F ), "My Appointment" );
				return;
			}

			//	Notify the user that there are existing mappings, and see if they want to remove them
			msg = "The KeyActionMappings collection already contains the following mappings for " + keyToMap.ToString() + ":\n\n";
			msg += mapList + "\n";
			msg += "Do you want to remove the existing mappings for " + keyToMap.ToString() + "?";

			//	Show the message box
			result = MessageBox.Show( msg, "Remove existing KeyActionMappings", MessageBoxButtons.YesNo, MessageBoxIcon.Information );

			//	If the user answers No, return, leaving the existing KeyActionMappings collection unaffected
			if ( result == DialogResult.No )
			{
				this.ultraWeekView.KeyActionMappings.Add( keyMappingToAdd );
				//	Add an appointment so they can test it out
				this.ultraWeekView.CalendarInfo.Appointments.Add( DateTime.Now, DateTime.Now.AddMinutes( 30.0F ), "My Appointment" );
				return;
			}

			//	Remove all KeyActionMappings whose KeyCode property is set to the key we are mapping
			foreach( KeyActionMapping keyMapping in this.ultraWeekView.KeyActionMappings )
			{
				if ( keyMapping.KeyCode == keyToMap )
					this.ultraWeekView.KeyActionMappings.Remove( keyMapping );
			}

			//	Now we can add the custom mapping
			this.ultraWeekView.KeyActionMappings.Add( keyMappingToAdd );

			//	Notify the user that all other mappings were removed
			msg = "All existing mappings for " + keyToMap.ToString() + " successfully removed.\n";
			MessageBox.Show( msg, "Remove existing KeyActionMappings", MessageBoxButtons.OK );

			//	Add an appointment so they can test it out
			this.ultraWeekView.CalendarInfo.Appointments.Add( DateTime.Now, DateTime.Now.AddMinutes( 30.0F ), "My Appointment" );

		}
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also