菜鸟问题:咋控制打开窗体的位置?

lusonghe18 2003-07-25 08:12:15
我想在用一按钮打开一窗体的时候,让这窗体始终出现在
紧靠按钮的下方?
...全文
84 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shareach 2003-07-25
  • 打赏
  • 举报
回复
加个循环:
System.Windows.Forms.Control parentControl=button.Parent;
System.Drawing.Point position = new System.Drawing.Point(0,0);
while (!(parentControl is System.Windows.Forms.Form))
{
position.X += parentControl.Location.X;
position.Y += parentControl.Location.Y;
parentControl = parentControl.Parent;
}
position.X += button.Location.X;
position.Y += button.Location.Y+button.Height;
openForm.Location=position;
derek 2003-07-25
  • 打赏
  • 举报
回复
沒問題啊
openForm.Location=new System.Drawing.Point(tn.Location.X,btn.Location.Y+20);

試試用:
openForm.Left=btn.Left;
openForm.Top=btn.Top+20;
lusonghe18 2003-07-25
  • 打赏
  • 举报
回复
谢谢JOELIU,但是父窗体不是最大化时,openForm的位置就不会根我的按钮位置走啊?
joeliu 2003-07-25
  • 打赏
  • 举报
回复
private void button1_Click(object sender, System.EventArgs e)
{
form2=new Form2 ();
form2.StartPosition=FormStartPosition.Manual ;
form2.Location =new System.Drawing.Point(0,200);
form2.Show ();
}
即可
lusonghe18 2003-07-25
  • 打赏
  • 举报
回复
public class MainForm
{
private OpenForm openForm;//另一窗体
public MainForm()
{
......
}
private void Buttons_Click(object sender,EvengArgs e)
{
Button btn=(Button)sender;
openForm=new OpenForm();
openForm.Location=new System.Drawing.Point(tn.Location.X,btn.Location.Y+20);
openForm.Show();
}
}
liduke 2003-07-25
  • 打赏
  • 举报
回复
把代码贴出来看看
lusonghe18 2003-07-25
  • 打赏
  • 举报
回复
按钮不是动态生成的
lusonghe18 2003-07-25
  • 打赏
  • 举报
回复
求助
declude 2003-07-25
  • 打赏
  • 举报
回复
按钮是动态生成的?
lusonghe18 2003-07-25
  • 打赏
  • 举报
回复
to:declude
单击第一次它出现在左上方,以后每单击打开
它会沿,他的X,Y坐标会增加即往,bottom,right方向移动
到屏幕中间后有会退至第一次的位置
declude 2003-07-25
  • 打赏
  • 举报
回复
什么情况?
lusonghe18 2003-07-25
  • 打赏
  • 举报
回复
Button btn=(Button)sender;
openForm=new OpenForm();
openForm.Location=new System.Drawing.Point(btn.Location.X,btn.Location.Y+20);
openForm.Show();
我这样做是没有达到我上述要求,
为什么?
CMIC 2003-07-25
  • 打赏
  • 举报
回复
设置location属性或StartPosition属性
declude 2003-07-25
  • 打赏
  • 举报
回复
你可以用Form的location属性设置。
joeliu 2003-07-25
  • 打赏
  • 举报
回复
private void button1_Click(object sender, System.EventArgs e)
{
form2=new Form1 ();
form2.StartPosition=FormStartPosition.Manual ;
//横坐标
int X=this.Location.X +this.button1 .Location .X ;
//纵坐标
int Y=this.Location .Y+this.button1 .Location .Y
+this.button1 .Size .Height+30;
form2.Location =new System.Drawing.Point(X,Y);

form2.Show ();
}
不断点按钮,效果是不错的
坐标中的数字30是form2的上面显示标题部分(蓝色条)的高度
内容概要:本文围绕碳排放流理论与混合整数线性规划(MILP)方法,开展源荷协同优化研究,旨在通过Matlab代码实现低碳、高效的能源系统调度。研究综合考虑电源侧、负荷侧及电网传输环节,构建了能够精确追踪碳排放流动路径的优化模型,并采用MILP方法进行多时段协同决策求解,实现了对系统运行的全局优化。文中系统阐述了碳排放流的建模机制、源荷两侧的协同约束条件以及以碳排放最小化为核心的多目标函数设计方法,通过Matlab编程完成模型求解与仿真验证,结果表明该方法能有效降低系统整体碳排放水平,提升清洁能源消纳能力,并优化能源资源配置效率。; 适合人群:具备一定电力系统、运筹学及低碳能源系统相关基础知识,熟悉Matlab编程环境,从事能源系统优化、综合能源管理、碳排放核算与调度、虚拟电厂等领域研究的科研人员、工程技术人员及研究生。; 使用场景及目标:①应用于虚拟电厂、区域综合能源系统、微电网等场景下的多时间尺度低碳优化调度;②实现电网中碳排放责任的精细化溯源与分摊,为碳交易机制下的经济激励与成本分摊提供量化依据;③为新型电力系统低碳化、清洁化转型提供科学的分析工具与决策支持手段。; 阅读建议:读者应结合文中提供的Matlab代码,深入理解碳排放流建模的数学逻辑与MILP优化问题的构建过程,重点关注目标函数与约束条件的数学表达形式及其物理意义,建议动手复现算例,通过调整参数和场景设置,探究不同因素对优化结果的影响,从而深化对源荷协同机制与碳流分配原理的认知。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧