This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Form1.cs
59 lines (57 loc) · 2.45 KB
/
Form1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraScheduler.UI;
using DevExpress.XtraScheduler;
using DevExpress.Services;
using DevExpress.XtraScheduler.Services.Implementation;
using DevExpress.XtraScheduler.Commands;
using DevExpress.XtraScheduler.Native;
namespace HowTo {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
void Form1_Load(object sender, EventArgs e) {
SchedulerKeyboardHandlerService oldService = (SchedulerKeyboardHandlerService)schedulerControl1.Services.GetService(typeof(IKeyboardHandlerService));
schedulerControl1.Services.RemoveService(typeof(IKeyboardHandlerService));
MySchedulerKeyboardHandlerService myKeyboardService = new MySchedulerKeyboardHandlerService(oldService);
schedulerControl1.Services.AddService(typeof(IKeyboardHandlerService), myKeyboardService);
}
}
public class MySchedulerKeyboardHandlerService : IKeyboardHandlerService {
SchedulerKeyboardHandlerService oldService;
public MySchedulerKeyboardHandlerService(SchedulerKeyboardHandlerService oldService) {
this.oldService = oldService;
}
public SchedulerKeyboardHandlerService OldService { get { return oldService; } }
#region IKeyboardHandlerService Members
public void OnKeyDown(KeyEventArgs e) {
OldService.OnKeyDown(e);
}
public void OnKeyPress(KeyPressEventArgs e) {
Keys modifier = Form1.ModifierKeys;
if ((modifier & Keys.Alt) == 0 && (modifier & Keys.Control) == 0) {
SchedulerControl control = (SchedulerControl)oldService.Control.Owner;
SchedulerCommand command = null;
if (control.SelectedAppointments.Count <= 0)
command = new NewAppointmentCommand(control);
else if (control.SelectedAppointments.Count == 1)
command = new EditAppointmentQueryCommand(control);
if (command != null) {
e.Handled = true;
command.Execute();
}
} else
OldService.OnKeyPress(e);
}
public void OnKeyUp(KeyEventArgs e) {
OldService.OnKeyUp(e);
}
#endregion
}
}