C#如何实现当子窗体区域超出父窗体区域时让其显示在父窗体内

wyj488 2010-10-06 12:40:49
C#如何实现当子窗体区域超出父窗体区域时让其显示在父窗体内?
求解.非常感谢.
...全文
760 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-10-06
  • 打赏
  • 举报
回复
mousemove中判断位置是否超出
void Form1_MouseMove(object sender, MouseEventArgs e)
{}
loveSoftandhxy 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mervyn807 的回复:]
如果楼主设计时指定了父窗体的话那就不会超出的
[/Quote]

我想应该有的,指定了两者关系。。


刚刚说的就是说超出的,你做下处理,没有超出的。就不用做处理。
缭绕飘渺 2010-10-06
  • 打赏
  • 举报
回复
如果楼主设计时指定了父窗体的话那就不会超出的
wyj488 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lovesoftandhxy 的回复:]
恩,明白LZ的意思。

计算两者坐标,不知道有没有直接可以调用的方案

或者麻烦点,用坐标,如果超出父窗体的左边或者右边坐标位置,则子窗体自动挪至父窗体内。也就是超出的,永远在期内
[/Quote]

子窗体自动挪至父窗体内,也就是超出的,永远在其内,就是这个意思
loveSoftandhxy 2010-10-06
  • 打赏
  • 举报
回复
恩,明白LZ的意思。

计算两者坐标,不知道有没有直接可以调用的方案

或者麻烦点,用坐标,如果超出父窗体的左边或者右边坐标位置,则子窗体自动挪至父窗体内。也就是超出的,永远在期内
ZengHD 2010-10-06
  • 打赏
  • 举报
回复
        private void button1_Click(object sender, EventArgs e)
{
Form frm = new Form();
frm.LocationChanged += delegate
{
if (frm.Left < 0)
{
frm.Left = 0;
}

if (frm.Top < 0)
{
frm.Top = 0;
}
};

frm.TopLevel = false;
frm.Parent = this.panel1;
frm.Show();
}
wyj488 2010-10-06
  • 打赏
  • 举报
回复
可能我说不够明白,总而言之就是子窗体边界不能越过父窗体边界.望解答
wyj488 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lovesoftandhxy 的回复:]
我想LZ的意思是说:比如移动运动一样,一个球在一个矩形框中运动,一旦超出范围,让其永远在其内???

可以考虑固定坐标。
[/Quote]

我实现了一个窗体,鼠标移动已经弹出一个窗体,当这个窗体边界超出父窗体边界时,让其显示在父窗体内
loveSoftandhxy 2010-10-06
  • 打赏
  • 举报
回复 1
我想LZ的意思是说:比如移动运动一样,一个球在一个矩形框中运动,一旦超出范围,让其永远在其内???

可以考虑固定坐标。
lrh_079 2010-10-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xu56180825 的回复:]

本来就是这样的,你只要设置成主窗体和子窗体
this.IsMdiContainer = true;
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
[/Quote]
正解
xu56180825 2010-10-06
  • 打赏
  • 举报
回复
本来就是这样的,你只要设置成主窗体和子窗体
this.IsMdiContainer = true;
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
wyj488 2010-10-06
  • 打赏
  • 举报
回复
具体的代码能给出一下吗.谢谢

111,129

社区成员

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

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

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