C#做的无框窗体只能在电脑屏幕范围内移动
答案:3 悬赏:60 手机版
解决时间 2021-03-20 10:43
- 提问者网友:寂寞梧桐
- 2021-03-20 01:36
C#做的无框窗体只能在电脑屏幕范围内移动
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-03-20 01:45
在Form窗口中添加一个Move事件
private void Form_Move(object sender,EventArgs e)
{
Rectangle r=Screen.GetWorkingArea(this);
if( (this.Right>=r.Right)||(this.Left<=0)||(this.Top<=0)||(this.Bottom>=r.Bottom))
this.Location = new Point(r.Right - this.Width, r.Bottom - this.Height);
}
就是检测,当上下左右超出位置时,自动恢复,代码是手敲的,不免有错误之处,希望楼主采纳~o(∩_∩)o 哈哈
private void Form_Move(object sender,EventArgs e)
{
Rectangle r=Screen.GetWorkingArea(this);
if( (this.Right>=r.Right)||(this.Left<=0)||(this.Top<=0)||(this.Bottom>=r.Bottom))
this.Location = new Point(r.Right - this.Width, r.Bottom - this.Height);
}
就是检测,当上下左右超出位置时,自动恢复,代码是手敲的,不免有错误之处,希望楼主采纳~o(∩_∩)o 哈哈
全部回答
- 1楼网友:杯酒困英雄
- 2021-03-20 03:17
经测试可用,环境:VS2005,当拖出屏幕外面的时候,会把窗口定位到当前屏幕中间。
private void Form1_Move(object sender, EventArgs e)
{
Point p = this.Location;
Rectangle r = Screen.GetWorkingArea(this);
if(p.X<0||p.Y<0||p.X>r.Width-this.Size.Width||p.Y>r.Height-this.Size.Height)
{
this.Location = new Point((r.Width - this.Size.Width) / 2, (r.Height - this.Size.Height) / 2);
}
}
private void Form1_Move(object sender, EventArgs e)
{
Point p = this.Location;
Rectangle r = Screen.GetWorkingArea(this);
if(p.X<0||p.Y<0||p.X>r.Width-this.Size.Width||p.Y>r.Height-this.Size.Height)
{
this.Location = new Point((r.Width - this.Size.Width) / 2, (r.Height - this.Size.Height) / 2);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯