1

这个问题建立在这个问题之上。我正在尝试使用 ToolStripControlHost 将 DateTimePicker 控件添加到 contextmenustrip。奇怪的是我第一次在它显示在位置 (0,0) 的上下文菜单中选择它

第一次

当我再次将鼠标悬停回该选项时,它会显示在正确的位置。

在此处输入图像描述 我找不到它设置位置的位置。我尝试设置要添加的控件的位置,但什么也没做。

    public SampleProgram()
    {
        IntializeComponent();
        DateTimePicker sampleDatePicker = new DateTimePicker();
        sampleDatePicker.TextChanged += new EventHandler(dateTimePicker_OnTextChange);
        sampleDatePicker.Format = DateTimePickerFormat.Short;
        datagridview1.Controls.Add(sampleDatePicker);
    }

    private void datagridview1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (e.ColumnIndex != -1 && e.RowIndex != -1 && e.Button == MouseButtons.Right)
        {
            datagridview1.ContextMenuStrip = new ContextMenuStrip();
            datagirdview1.ContextMenuStrip.Items.Clear();

            Get_Alphabetical_User_Groups(datagridview1.ContextMenuStrip, SampleContextMenu_Action);
            datagridview1.ContextMenuStrip.Items.Add(new ToolStripSeparator());

            GetStatusList(datagridview1.ContextMenuStrip, false, SampleContextMenu_Action);
            datagridview1.ContextMenuStrip.Items.Add(new ToolStripSeparator());

            GetDatePicker(datagridview1.ContextMenuStrip, SampleContextMenu_Action);
            datagridview1.ContextMenuStrip.Items.Add("Copy Cell Data", Resources.blank, SampleContextMenu_Action);
            datagridview1.ContextMenuStrip.Show(Cursor.Position.X, Cursor.Position.Y);
        }
    }

    private void GetDatePicker(ContextMenuStrip dateMenu, EventHandler MenuOption_Click_Handler)
    {
        Point mouseloc = Cursor.Position;
        sampleDatePicker.Location = mouseloc;
        var datePicker = new ToolStripControlHost(sampleDatePicker);
        datagridview1.ContextMenuStrip.Items.Add(new ToolStripMenuItem("Set Followup Date to", Resources.calendar_edit, datePicker));
    }

任何帮助深表感谢!

4

1 回答 1

0

不要将控件添加到 DataGridView 的 Control 集合中。它不属于那里:

// datagridview1.Controls.Add(sampleDatePicker);
于 2018-07-19T18:17:31.397 回答