现在Form1中有个Btn按钮,我希望点击Btn按钮时候弹出的Form2的位置在Btn的右边,并且Btn的位置在Form2的中间
请问该如何添加代码?        private void btn_Click(object sender, EventArgs e)
        {
            Form2 form = new Form_2();
            form.ShowDialog();
        }

解决方案 »

  1.   

    Form2的位置在Btn的右边,Btn的位置在Form2的中间,这两个条件可能同时存在吗
      

  2.   

    Button btn = sender as Button;
    Form2 form = new Form_2();
    form.Top = this.Top + btn.Top + (btn.Height/2) - form.Height;
    form.Left = this.Left + btn.Left - form.Width;

    form.ShowDialog();
      

  3.   

    Btn的位置在Form2的中间 这个没说清楚 我贴个图给你看
      

  4.   

    修改下:
    form.Top = this.Top + btn.Top + (btn.Height - form.Height)/2;
    form.Left = this.Left + btn.Left - form.Width;
      

  5.   

    Form2的属性里设置
    this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
    然后在Form1的btn点击事件里设置
            private void btn_Click(object sender, EventArgs e)
            {
                Form2 form = new Form_2();
                taskbar.Owner = this;
                Point form_po = this.btn.Location;
                Point newpo = new Point(form_po.X + 12, form_po.Y - 30);
                form.Location = newpo;
                form.ShowDialog();
            }
      

  6.   

    taskbar.Owner = this; 这个去掉
      

  7.   


         FromFromFrom
    Btn  FromFromFrom
         FromFromFrom我也不会贴图 这样你能看懂吗? 左边是Btn 右边是Form窗口
      

  8.   

    是这个样子的 左边是Btn 右边是Form窗口
        FromFromFrom
    Btn FromFromFrom
        FromFromFrom
      

  9.   

             FromFromFrom
    Btn      FromFromFrom
             FromFromFrom
      

  10.   

    是这样的吧 呵呵    FromFromFrom
    Btn FromFromFrom
        FromFromFrom
      

  11.   

    代码我加进去了 Form2弹出来后不在btn的右边呀
      

  12.   

    别忘记 Form2 的StartPosition属性改为 Manual(手动)
      

  13.   

    form.Left = this.Left + btn.Left + btn.Width;
      

  14.   

      private void btn_Click(object sender, EventArgs e)
      {
        Form2 form = new Form_2();
        form.Top = this.Top + btn.Top + (btn.Height - form.Height)/2;
        form.Left = this.Left + btn.Left + btn.Width;
        form.ShowDialog();
      }