开发者

How to pop Toolwindow in a defined position

Im trying to integrate a toolwindow in a Winforms application, it will be a tiny floating window to display element details in a listbox. What I need is pop the window in a relative position to the control that triggers the action, so here is the thing: the Location property gives me the relative position of the control from its container (the main form in this case) so this is the workaround im using:

    public void Show(kTextBox source)
    {

        Point absCoord = source.PointToScreen(source.Location);
        this.Location = this.PointToClient(absCoord);
        base.Show();

    }

Basically this is: get the a开发者_StackOverflowbsolute control position and set this position (previously converted into owner relative) to the toolwindow. I think it should work just fine but is missing for a certain degree, and it varies depending what control i use. Its kinda confusing. Been there anyone?? Thanks in advance.


What happens if you try the following:

public void Show(kTextBox source)
{
    Point control_origin = source.PointToScreen(new Point(0, 0));
    this.Location = new Point(control_origin.X, control_origin.Y);
    base.Show();
}


   private void button1_Click(object sender, EventArgs e)
    {
        ToolStripDropDown popup = new ToolStripDropDown();
        popup.Margin = Padding.Empty;
        popup.Padding = Padding.Empty;
        ToolStripControlHost host = new ToolStripControlHost(frm);

        host.Margin = Padding.Empty;
        host.Padding = Padding.Empty;
        popup.Items.Add(host);
        popup.Show(button1, button1.Left - 10, button1.Top + (int)(button1.Height / 2));
    }

    Form2 frm = new Form2();
    private void Form1_Load(object sender, EventArgs e)
    {
        frm.TopLevel = false;
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜