C# WinFrom窗体中,我想我的窗体和屏幕之间的距离的 Margin都是50,也就是,left ,Top,Right,Bottom.

和屏幕边缘的距离,怎么获得?

yourform.Top = 50;
yourform.Left = 50;

yourform.Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width - 100;
yourform.Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - 100;追问

如果我把窗体拖拽,有一半窗体被拽显示器的外部,我想让它自己返回到原始位置,请问一下又该如何?

追答

把上面的代码定义成一个方法

你想触发的时候调用一下就可以了

追问

嗯,那当我的窗体出了边界后,我的判断是不是就可以这样写了:
if(myform.Width > System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width)
{
// 调用此方法
}
if(myform.Height> System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)
{
// 调用此方法
}

追答

你是不是希望form固定在那个位置?

放到form的move事件里 ,只要窗口移动了,就触发

你是不是希望form固定在那个位置?

放到form的move事件里 ,只要窗口移动了,就触发

追问

您那样做算是固定了吧?可以达到效果。
但是移动不开,我想稍微移动一点,但是只要不出屏幕的边缘,窗体就在那不动,一旦出了屏幕边缘我才让它返回到原来的位置,是这样的。
所以,我想问出屏幕边缘的那一刻,改如何判断,就是当Left + myfrom.Width > Screen.PrimaryScreen.Bounds.Width? 是这样的想法嘛?

追答

判断 top 和left
如果top > 100 说明 出了屏幕下方

left > 100 说明移出了右方
< 0 移出左方

一共就那么几种情况

温馨提示:答案为网友推荐,仅供参考
相似回答