C#中怎么设置"动态生成窗体"的位置

我想点击一个按钮, 让它动态生成一个窗体, 但是怎样才能设置这个动态生成的窗体在屏幕上的位置?

已有代码:
//单击按钮事件
private void button1_Click(object sender, EventArgs e)
{
Point p = new Point(0, 240);
Form win = new Form();
this.DesktopLocation = p;
win.Show();
}

{
//Form win = new Form();
//win.Width = 200;
//win.Height = 125;
//int q = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width - 200;
//int w = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Height - 125;
//win.SetDesktopLocation(q, w);
//win.Show();
}
这两种写法都不行, 动态生成的窗体还是随便乱出, 怎么才行?
还请高手赐教, 要有代码啊, 讲的明白些, 不胜感激~!!!!!

修改动太生成窗口的Form.StartPosition 属性,此属性为枚举(FormStartPosition)类型,修改为FormStartPosition.Manual,就可以能过设置新窗体的Location 属性来修改窗口的位置。

            Point p = new Point(200, 100);
            Form win = new Form();
            win.Width = 150;
            win.Height = 50;
            win.Text = "新窗口";
            win.StartPosition = FormStartPosition.Manual;
            win.Location = p;
            win.Show();

效果如下:

MSDN对这个属性有如下说明:

CenterParent 窗体在其父窗体中居中。
CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。
Manual 窗体的位置由 Location 属性确定。
WindowsDefaultBounds 窗体定位在 Windows 默认位置,其边界也由 Windows 默认决定。
WindowsDefaultLocation 窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-10-29
Rectangle screenRect = Screen.PrimaryScreen.WorkingArea;
//Rectangle screenRect = Screen.PrimaryScreen.Bounds;

win.Location = new Point(screenRect.Right - frm.Width, screenRect.Bottom - frm.Height);
win.StartPosition = FormStartPosition.Manual;

win.Show();本回答被提问者采纳

C#,WinForms,如何动态地设置控件Dock\/Undock?
先拖一个DotnetBarManager到你的窗口,你将在窗口下方的组件栏中看到这个控件,右键点击这个控件,将会有诸如:Create Dock Bar Left之类的菜单。你可以按照你的需求来创建Dock Bar或Tool Bar,或Menu Bar。

C# Winform 如何根据用户输入的数值动态创建Panel
首先创建一个 panel,然后设置它的一些基本属性,比如位置,大小等,还有visible要设为true 当panel创建完成后,要将panel加入到窗体的Controller中 至于多个panel的位置摆放,大小这些规则是自己定义的

C#如何动态生成lable,最好给个实例,万分感谢。
一个简单的方法,你拖一个label到窗体,然后在cs文件里面的lable1右键,转到定义,然后就转到自动生成的代码里面了,然后按照自动生成label的代码复制过来,然后在你需要动态生成的地方,写这些代码,改改就行了。呵呵

如何在C# 中设置动态字体
\/\/ 设置主界面上移动的标签 private void timer1_Tick(object sender, EventArgs e){ lblYDTS.Left -= 3;\/\/向左移动3个像素 if (lblYDTS.Right < 0)\/\/移动到窗体最左端后从最右端进入窗体 { lblYDTS.Left = this.Width;} } lblYDTS的值"欢迎进入**系统"在属性里设置.timer窗体的Load...

C#中如何动态修改窗体左上角图标
你可以改变Form的Icon属性 Icon icon=new Icon("图标路径");Form f=new Form();f.icon=icon;图标最好放在但前执行目录下

c#的 winform怎么使弹出的窗口在屏幕的正中间,就是当我点击链接弹出的窗...
C#的winform窗口居中只需要设置startposition属性即可,接下来用visual studio 2015创建一个winform程序具体演示一下:1,打开visual studio,窗口windows窗体应用程序,如下图所示 2,右键单击窗体,选择属性,如下图所示 3,找到StartPosition属性,设置为CenterScreen,如下图所示 4,运行程序以后,winform窗口就...

c#的 winform怎么使弹出的窗口在屏幕的正中间,就是当我点击链接弹出的窗...
在C#的Winform开发中,让弹出窗口始终居中显示其实相当简单。只需在创建窗口时设置好startposition属性即可。下面通过一个实际步骤来说明如何操作:首先,打开Visual Studio 2015,选择新建一个Windows窗体应用程序项目。启动后,你会看到一个空白的窗体界面。接下来,右键单击窗体,选择"属性"选项,这将打开窗体...

c# 如何让当前活动窗体不在顶端显示???
...以主界面为主窗体(即MDI窗体,在窗体的属性里可以设置)。。。把这个查询窗体做为父窗体的子窗体就好了。。。就像我们打开Word一样,我们可以新建好多。它们都包含在父窗体里面。始终显示 或者窗体有一个属性,具体你在属性栏里查找下。有个窗体始终最上的属性改为True就行了。。始终最前。。。...

c# 弹出窗,要求在指定位置弹出窗体(屏幕正中、屏幕右下角)
在Form_Load事件中先计算屏幕的高度和宽度,再计算本窗体的高度和宽度.然后用屏幕的高度-窗体的高度得到窗体的Top属性,屏幕的宽度-窗体的宽度得到窗体的Left属性.代码如下:this.Location=new Point(Screen.PrimaryScreen.Bounds.Width-this.Size.Width,Screen.PrimaryScreen.Bounds.Height-this.Size.Height);...

c# 怎么根据控件找到当前窗体?
如果本来有很多层的话,可以直接用Tag传递引用 如果你是动态创建button1的,那你在构建的时候设置 button1.Tag=this;然后用的时候从Tag取出来 var fromB=button1.Tag as Form;if(fromB!=null){ ...} 如果是设计器拖的控件,那也可以在formB的构造函数中手动设置 button1.Tag=this;

相似回答