отключить клавишу со стрелкой в ??элементе управления планировщика

есть способ отключить клавишу со стрелкой вправо и влево? потому что я не хочу, чтобы пользователь видел дату раньше 10 octoberи дату после16 october

введите описание изображения здесь

я попробовал этот код

       private void schedulerControl1_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.KeyCode == Keys.Right)
        {

            e.Handled = true;
        }
    }

он по-прежнему может нажать кнопку со стрелкой, и у меня есть проверка, что schedulercontrolсвойства не получили keypreview. или, может быть, отключить пользовательский клик или сосредоточиться на ячейке

nb: iam с использованием devexpressкомпонентаscheduler

c#,winforms,devexpress,

0

Ответов: 2


1 принят

Вы можете использовать IKeyboardHandlerService.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        IKeyboardHandlerService oldKeyboardHandler = (IKeyboardHandlerService)schedulerControl1.GetService(typeof(IKeyboardHandlerService));
        if (oldKeyboardHandler != null)
        {
            MyKeyboardHandlerService newKeyboardHandler = new MyKeyboardHandlerService(schedulerControl1, oldKeyboardHandler);
            schedulerControl1.RemoveService(typeof(IKeyboardHandlerService));
            schedulerControl1.AddService(typeof(IKeyboardHandlerService), newKeyboardHandler);
        }
    }
}

public class MyKeyboardHandlerService : KeyboardHandlerServiceWrapper
{
    IServiceProvider provider;

    public MyKeyboardHandlerService(IServiceProvider provider, IKeyboardHandlerService service)
        : base(service)
    {
        this.provider = provider;
    }

    public override void OnKeyDown(KeyEventArgs e)
    {
        if (!(e.KeyCode == Keys.Left|| e.KeyCode == Keys.Right))
                        base.OnKeyDown(e);
    }
}

C #, WinForms, DevExpress,
Похожие вопросы