Открытие dateTimePicker с помощью PictureBox - PullRequest
0 голосов
/ 16 июня 2019

Есть ли способ открыть DateTimePicker с помощью PictureBox в c # windowsform?Я хотел минимизировать размер dateTimePicker, чтобы он мог показывать только стрелку раскрывающегося списка и изображение календаря, но это невозможно, поэтому теперь я хочу открыть календарь с помощью PictureBox, это возможно?Спасибо

1 Ответ

0 голосов
/ 22 июня 2019

Хотя в DateTimePicker невозможно программно отобразить средство выбора, вы можете создать свой собственный способ следующим образом:

[ToolboxItem(true)]
public class CustomDateTimePicker : DateTimePicker
{
    private const int WM_KEYDOWN = 0x100;
    private const int VK_F4 = 0x73;
    private const int F4_KEYDOWN_LPARAM = 0x003e0001;

    public void ShowPicker()
    {
        Focus();
        var m = Message.Create(Handle, WM_KEYDOWN, new IntPtr(VK_F4), new IntPtr(F4_KEYDOWN_LPARAM));
        WndProc(ref m);
    }
}

Чем обработчик Click вашего графического окна, просто вызовите этот метод ShowPicker.

private void PictureBox1_Click(object sender, EventArgs e)
{
    customDateTimePicker1.ShowPicker();
}
...