在鼠标位置显示弹出窗口

时间:2018-02-13 18:31:17

标签: c# winforms

我想在鼠标位置显示usercontrol作为弹出窗口。

但是,下面的代码对此不起作用;

            System.Drawing.Point mousePos = System.Windows.Forms.Cursor.Position;
            System.Drawing.Point formPos = this.Bounds.Location;
            popupChart1.ultraLabel1.Text = e.DataRow.ToString() ;
            popupChart1.Location = new System.Drawing.Point(mousePos.X - formPos.X, mousePos.Y - formPos.Y);
            popupChart1.Show();

它不会引发任何错误,只是在另一个地方显示它自己。可能是什么原因?

2 个答案:

答案 0 :(得分:2)

您应该在呈现表单后设置位置。

如果你想让它显示在你的鼠标光标位置,那么只需使用Cursor.Position而不是你做的数学

popupChart1.Show();
popupChart1.Location = Cursor.Position;

OR
如果你想在显示窗口之前设置位置,你可以

popupChart1.Location = Cursor.Position;
popupChart1.StartPosition = FormStartPosition.Manual;
popupChart1.Show();

答案 1 :(得分:0)

是否可以在默认的弹出按钮上设置鼠标光标的位置? 我有一个显示弹出窗口的Windows窗体,我想将光标直接定位在“确定”按钮上。

路易斯