C#Winfrom怎么让我这个窗体显示到别的屏幕上双屏显示

乐扣留 2018-06-07 01:19:27

public ImageFrom()
{
InitializeComponent();
ImageFrom frm2 = new ImageFrom();
frm2.TopLevel = false;
if (Screen.AllScreens.Count() != 1)
{
frm2.Left = Screen.AllScreens[0].Bounds.Width;
frm2.Top = 0;
frm2.Size = new System.Drawing.Size(Screen.AllScreens[1].Bounds.Width, Screen.AllScreens[1].Bounds.Height);
}
this.Left = ((Screen.AllScreens[1].Bounds.Width - this.Width) / 2);
this.Top = ((Screen.AllScreens[1].Bounds.Height - this.Height) / 2);
this.Size = new System.Drawing.Size(Screen.AllScreens[1].Bounds.Width, Screen.AllScreens[1].Bounds.Height);
}
public void FormStartScreen(int screen, Form form)
{
if (Screen.AllScreens.Length <= 1)
return;
if (Screen.AllScreens.Length < screen)
return;
form.StartPosition = FormStartPosition.Manual;
form.Location = new System.Drawing.Point(Screen.AllScreens[screen].Bounds.X, Screen.AllScreens[screen].Bounds.Y);
form.WindowState = FormWindowState.Maximized;
}

/// <summary>
/// 默认在第1一个扩展屏幕上打开。
/// </summary>
/// <param name="form">要启动的程序。</param>
public void FormStartScreen(Form form)
{
FormStartScreen(1, form);
}


private void ImageFrom_Load(object sender, EventArgs e,Form from)
{


string path = Application.StartupPath + @"\img\";
if (!File.Exists(path + "image.png"))
{
panel1.BackgroundImage = Image.FromFile(Application.StartupPath + @"\img\image1.png");
}
else
{
panel1.BackgroundImage = Image.FromFile(Application.StartupPath + @"\img\image.png");
}

}
这个窗体里面就一张图片 让他显示到其他的屏幕上,现在是他就只显示到我自己的主屏幕上面

...全文
2006 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
CodingPioneer 2018-12-21
  • 打赏
  • 举报
回复

Screen[] screens = Screen.AllScreens;
if (screens.Length > 1) //如果有多个显示器,显示在第二个显示器
{
foreach (Screen screen in screens)
{
if (!screen.Primary)
{
//screen对象如果不是主屏则显示客户端画面窗体
frm.ShowInTaskbar = false; //不在任务栏中显示
frm.Show();
frm.Left = screen.WorkingArea.Location.X; //第二块屏的x坐标
frm.Top = screen.WorkingArea.Location.Y; //第二块屏的y坐标
frm.WindowState = FormWindowState.Maximized;
frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
}
}
}
else
{
//如果只有一个显示器
}
厘米闲 2018-08-10
  • 打赏
  • 举报
回复
https://bbs.csdn.net/topics/392392392
wanghui0380 2018-06-12
  • 打赏
  • 举报
回复
主屏和附屏的顺序不是固定的,他是可以配置的。使用你使用固定的index作为主,附屏判定依据是有意外的效果的 呵呵,你这代码也许另外的人测试,他就是对的。
乐扣留 2018-06-12
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
https://bbs.csdn.net/topics/392392392
这方法我试过,但是没用
Jason_Mao1 2018-06-09
  • 打赏
  • 举报
回复
首先得说清楚 别的窗口是指的是那个窗口 ?是本项目里的窗口还是 其他的查询的窗口?如果是本程序的那就比较容易了。如果是别的程序的窗口那就得使用反射句柄,来获取句柄的窗口位置,然后在置顶 。大致思路就是这样 。
yxybreak 2018-06-09
  • 打赏
  • 举报
回复
你form的坐标设置到另一个屏幕即可,同时c#可以枚举系统所有屏幕取到每个屏幕的像素范围
exception92 2018-06-07
  • 打赏
  • 举报
回复
乐扣留 2018-06-07
  • 打赏
  • 举报
回复
在线求大佬解答,急急急

110,536

社区成员

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

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

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