Wiform获取控件相对位置

最近需要做一个双击TextBox弹出一个窗体显示到TextBox下沿,因此在显示新窗体前得先设定其相对于屏幕左上角的位置。

获取TextBox控件位置的方法有,TextBox.Loaction;TextBox.Left;TextBox.Top。但这些方法获得的都是TextBox相对其容器的位置信息。

Control.PointToScreen(Point p)方法是获得控件相对于p点的位置信息,p点可以随意指派,因此可以将p点设为左上角,然后获得的既是想要的位置信息。

代码如下:

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

        private void textBox1_DoubleClick(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.StartPosition = FormStartPosition.Manual;//此句必不可少
            Point p = new Point(0, 0);
            p = textBox1.PointToScreen(p);
            f.Location = new Point(p.X,p.Y+textBox1.Height);
            f.ShowDialog();
        }
    }

效果如下:

 

posted on 2016-01-06 21:49  田夫  阅读(337)  评论(0编辑  收藏  举报

导航