我想在C#Windows窗體中製作一個Windows覆蓋圖,但它不會填充我的設置上的第二個屏幕。我使用的命令找出所有的屏幕分辨率:C#窗體不會填滿整個屏幕
表1:
Rectangle a;
Rectangle b;
public Form1()
{
InitializeComponent();
pictureBox1.Hide();
pictureBox2.Hide();
Positions();
int i = 0;
foreach (Screen S in AllScreens)
{
if (i == 0)
{
a = S.Bounds;
i++;
}
else
{
b = S.Bounds;
}
}
FormBorderStyle = FormBorderStyle.None;
Work();
IDK(b);
}
void Work()
{
Height = a.Height;
Width = a.Width;
}
void MsgBox(string a)
{
MessageBox.Show(a);
}
void IDK(Rectangle b)
{
int showOnMonitor = 1;
Screen[] sc;
sc = AllScreens;
Form2 f = new Form2(b)
{
FormBorderStyle = FormBorderStyle.None,
Left = sc[showOnMonitor].Bounds.Left,
Top = sc[showOnMonitor].Bounds.Top,
StartPosition = FormStartPosition.Manual
};
f.Show();
}
void Positions()
{
label1.Location = new Point(
Width/2 - label1.Width/2,
Height/2 - label1.Height - 40);
label1.Anchor = AnchorStyles.None;
button1.Location = new Point(
Width/2 - button1.Width/2,
Height/2 - button1.Height + 40);
button1.Anchor = AnchorStyles.None;
linkLabel1.Location = new Point(
Width/2 - linkLabel1.Width/2,
Height/2 - linkLabel1.Height + 500);
linkLabel1.Anchor = AnchorStyles.None;
}
private void button1_Click(object sender, EventArgs e)
{
LoadGUI();
MsgBox(Width.ToString());
MsgBox(Height.ToString());
}
void LoadGUI()
{
label1.Hide();
button1.Hide();
linkLabel1.Hide();
pictureBox1.Show();
pictureBox1.Location = new Point(20, 20);
pictureBox1.Anchor = AnchorStyles.None;
pictureBox2.Show();
pictureBox2.Location = new Point(20, 188);
pictureBox2.Anchor = AnchorStyles.None;
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Application.Exit();
}
表2:
Rectangle a;
public Form2(Rectangle b)
{
InitializeComponent();
a = b;
Work();
}
void Work()
{
Height = a.Height;
Width = a.Width;
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
的問題是,表2不會充滿整個第2屏幕。 我不知道爲什麼屏幕沒有完全填滿,代碼工作了一天前,但它後Windows更新(我不知道這是否是問題。)。對於我所知道的這將永遠不會工作...任何幫助將不勝感激。 -Alex
圖片證明: Image (右下)
什麼碼的地方我用這種替換形式1 ? – user6481546
和我的視覺工作室說SetScreen不存在 – user6481546
我編輯了我的答案,以便您可以用我的替換您的Form1初始化代碼。關注SetScreen,我創建了一個單獨的靜態類「setScreen」。編輯這一點 - 只要確保它在相同的名稱空間。 – ainwood