首页 新闻 会员 周边 捐助

C# 子窗口出现在父窗口固定位置的问题

0
[已解决问题] 解决于 2013-06-09 17:22

我点一按钮弹出一个窗口,如何把它固定在我想要的位置(比如像360界面那样,登陆窗口弹出时出现在窗体的正中央)

Aiolos丶M的主页 Aiolos丶M | 菜鸟二级 | 园豆:353
提问于:2013-06-08 17:20
< >
分享
最佳答案
0

使用 startposition 属性,可以设置屏幕中间,也可以设置相对父窗体的中间,或者自定义。

使用Owner可以设置窗体的子窗体

奖励园豆:5
WuRang | 小虾三级 |园豆:1730 | 2013-06-08 17:30

父体如果是用不规则窗体定义的可以用startposition不

Aiolos丶M | 园豆:353 (菜鸟二级) | 2013-06-08 17:34

@莫问: 当然可以,所谓不规则窗体其实就是一个矩形窗体,然后让不现实的地方透明,其边框还是矩形,只不过你如果觉得子窗体的位置不是不规则窗体的中间,就不用center,改用自定义位置

WuRang | 园豆:1730 (小虾三级) | 2013-06-08 21:16

@WuRang: 自定义代码怎么写?

Aiolos丶M | 园豆:353 (菜鸟二级) | 2013-06-09 08:14

@莫问:在窗体的构造函数中

  this.StartPosition = FormStartPosition.Manual;
  this.Location = new Point(***,***);
WuRang | 园豆:1730 (小虾三级) | 2013-06-09 08:52

@WuRang: 这是在子窗体写?

Aiolos丶M | 园豆:353 (菜鸟二级) | 2013-06-09 08:56

@莫问: 你要定子窗体的位置就在子窗体中写,这个位置是相对屏幕的位置,如果你要相对于父窗体,那就先给父窗体设置子窗体,在子窗体的构造函数中写 this.Owner = 父窗体。 然后你就可以获取到父窗体Location。 如 this.Owner.Location.X,this.Owner.Location.Y 。最后this.Location = new Point( this.Owner.Location.X + 相对X this.Owner.Location.Y + 相对Y);

代码: 子窗体的构造函数中

 //父窗体f
 this.Owner = f;
 this.StartPosition = FormStartPosition.Manual;
 this.Location = new Point( this.Owner.Location.X + 相对x, this.Owner.Location.Y + 相对Y);
WuRang | 园豆:1730 (小虾三级) | 2013-06-09 09:04

@WuRang: 我怎么写的不成啊...我按一下按钮,出来一下,我把子窗体关了,移动父窗体,然后再按下按钮,子窗体还在原来位置啊....

Aiolos丶M | 园豆:353 (菜鸟二级) | 2013-06-09 14:32

@莫问: 

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

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this);
            f2.Show();
        }
    }

 

 public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();

        }

        public Form2(Form f)
        {
            this.Owner = f;
            this.StartPosition = FormStartPosition.Manual;
            this.Location = new Point(this.Owner.Location.X + 10, this.Owner.Location.Y + 10);
        }
    }
WuRang | 园豆:1730 (小虾三级) | 2013-06-09 14:41

@WuRang: 怎么调用了不是我想要的对话框

Aiolos丶M | 园豆:353 (菜鸟二级) | 2013-06-09 15:30

@WuRang: 我把this取消  就出现了我想要的窗口,不过我的位置不对了,我加上this,位置对了,但对话框不是我想要的

Aiolos丶M | 园豆:353 (菜鸟二级) | 2013-06-09 15:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册