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(); } }
效果如下: