C# 在运行时更改窗体位置更改屏幕编号
在从主屏幕切换到次屏幕后,我尝试将窗体位置切换到中间位置C# 在运行时更改窗体位置更改屏幕编号,c#,C#,在从主屏幕切换到次屏幕后,我尝试将窗体位置切换到中间位置 private void Form2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Space) { ff = !ff; if(ff) showOnScreen(1,this); else
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
ff = !ff;
if(ff)
showOnScreen(1,this);
else
showOnScreen(0,this);
}
}
void showOnScreen(int screenNumber,Form frm)
{
Screen[] screens = Screen.AllScreens;
if (screenNumber >= 0 && screenNumber < screens.Length)
{
Location = screens[screenNumber].WorkingArea.Location;
this.Location = new Point((screens[screenNumber].Bounds.Size.Width / 2) - (this.Size.Width / 2), (screens[screenNumber].Bounds.Size.Height / 2) - (this.Size.Height / 2));
}
}
private void Form2\u KeyDown(对象发送方,KeyEventArgs e)
{
if(e.KeyCode==Keys.Space)
{
ff=!ff;
如果(ff)
屏幕上显示(1,本);
其他的
屏幕上显示(0,此);
}
}
无效屏幕显示(整数屏幕编号,表格frm)
{
Screen[]screens=Screen.AllScreens;
如果(屏幕编号>=0&&screenNumber
表单在屏幕中央移动,但仅在我的主屏幕中移动您需要设置表单的
开始位置
手册以在位置
属性中设置开始位置值
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
ff = !ff;
if(ff)
showOnScreen(1,this);
else
showOnScreen(0,this);
}
}
void showOnScreen(int screenNumber,Form frm)
{
Screen[] screens = Screen.AllScreens;
if (screenNumber >= 0 && screenNumber < screens.Length)
{
Location = screens[screenNumber].WorkingArea.Location;
this.Location = new Point((screens[screenNumber].Bounds.Size.Width / 2) - (this.Size.Width / 2), (screens[screenNumber].Bounds.Size.Height / 2) - (this.Size.Height / 2));
}
}
public Form1()
{
InitializeComponent();
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(0, 0);
}
从这里取一个,再检查我的另一个
现在
尝试在showOnScreen方法中将WindowsStartupLocation参数设置为“手动”。如果表单已在屏幕上,则必须自己测量并更改Location属性。将屏幕位置添加到其中,我的意思是,您应该编辑您的答案,以包含指向ReallyCenterToScreen功能来源的链接。抱歉,问题已更改请让我现在检查