如何让子窗体不移动出父容器的范围

SuperLampard 2015-09-30 10:13:57
如图,把一个窗体放在在容器里,鼠标可以拖动窗体显示到父容器外,如何不让窗体移动到父容器外呢?
有一种方法是当移动到父容器外时,修改父容器属性AutoScroll = true,但这样会给父容器添加滚动条,,还有没有其他的方法呢?
...全文
328 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼 2015-10-09
  • 打赏
  • 举报
回复
问度娘,搜索 mdi 窗体
王者的陨落 2015-10-09
  • 打赏
  • 举报
回复
用c#代码,让form_child.mdiparent=form_parent
SuperLampard 2015-09-30
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
判断一下,如果坐标跑到外面,就修改回来,不就得了
你的办法我考虑过,但都不是想要的效果。。。。。。
xuzuning 2015-09-30
  • 打赏
  • 举报
回复
指定 Parent 属性
於黾 2015-09-30
  • 打赏
  • 举报
回复
判断一下,如果坐标跑到外面,就修改回来,不就得了
phommy 2015-09-30
  • 打赏
  • 举报
回复
using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } protected override void OnShown(EventArgs e) { base.OnShown(e); if (TopLevel) { var frm = new Form1(); frm.TopLevel = false; frm.LocationChanged += (sender, e1) => { var b = frm.Bounds; b.Intersect(ClientRectangle); frm.Bounds = b; }; Controls.Add(frm); frm.Show(); } } } }
  • 打赏
  • 举报
回复
把子窗口的 边框去掉,标题栏去掉。窗口弹出 都不让拖动。
SuperLampard 2015-09-30
  • 打赏
  • 举报
回复
没人吗
於黾 2015-09-30
  • 打赏
  • 举报
回复
给你写个简单的示例代码:

int maxX=this.Parent.Width-this.Width;
int maxY=this.Parent.Height-this.Height;
int x=this.Location.x;
int y=this.Loaction.y;
bool needToChangeLocation=false;

if(x<0)
{
x=0;
needToChangeLocation=true;
}
if(y<0)
{
y=0;
needToChangeLocation=true;
}
if(x>maxX)
{
x=maxX;
needToChangeLocation=true;
}
if(y>maxY)
{
y=maxY;
needToChangeLocation=true;
}
if(needToChangeLocation)
{
this.Loaction=new Point(x,y);
}
把这段代码放到LocationChanged事件里去,位置一变就执行
於黾 2015-09-30
  • 打赏
  • 举报
回复
引用 6 楼 lienguo 的回复:
[quote=引用 4 楼 Z65443344 的回复:] 判断一下,如果坐标跑到外面,就修改回来,不就得了
你的办法我考虑过,但都不是想要的效果。。。。。。[/quote] 话说,你得判断到底是哪个方向跑出去了,哪个方向跑出去,就修改那个方向的位置 向左跑出去,就得把x坐标设置成0,向上跑出去,就要把y坐标设置成0 向右跑出去,就得把x坐标设置成主窗体宽度-子窗体宽度 否则当然是不管哪边跑出去,都一下蹦回屏幕中间了
於黾 2015-09-30
  • 打赏
  • 举报
回复
引用 6 楼 lienguo 的回复:
[quote=引用 4 楼 Z65443344 的回复:] 判断一下,如果坐标跑到外面,就修改回来,不就得了
你的办法我考虑过,但都不是想要的效果。。。。。。[/quote] 那你得说清楚想要什么效果啊,不让跑出去,又不能出滚动条,又不能修改位置,那你是要怎样

111,098

社区成员

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

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

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