• C#多屏幕显示器编程


    在窗口的中间有一个System.Windows.Forms.PictureBox控件(该控件区域的面积为所在窗口的1/4),当该控件的大部分区域落在其中一台显示器时,在另一台显示器将不显示该控件,(该PictureBox控件将移动到主显示器所在的窗口区域)。  

    实现方法:
    using System; 
    using System.Drawing; 
    using System.Collections; 
    using System.ComponentModel; 
    using System.Windows.Forms; 
    using System.Data; 
     
    namespace WindowsApplication12 
    /// <summary> 
    /// Summary description for Form1. 
    /// </summary> 
    public class Form1 : System.Windows.Forms.Form 
    private int tmpx = 0; 
    private int tmpy = 0; 
    private System.Windows.Forms.PictureBox pictureBox1; 
    /// <summary> 
    /// Required designer variable. 
    /// </summary> 
    private System.ComponentModel.Container components = null; 
     
    System.Drawing.Rectangle[] ScreensRect; 
     
    public Form1() 
    // 
    // Required for Windows Form Designer support 
    // 
    InitializeComponent(); 
     
    // 
    // TODO: Add any constructor code after InitializeComponent call 
    // 
     
    /// <summary> 
    /// Clean up any resources being used. 
    /// </summary> 
    protected override void Dispose( bool disposing ) 
    if( disposing ) 
    if (components != null) 
    components.Dispose(); 
    base.Dispose( disposing ); 
     
    #region Windows Form Designer generated code 
    /// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor. 
    /// </summary> 
    private void InitializeComponent() 
    this.pictureBox1 = new System.Windows.Forms.PictureBox(); 
    this.SuspendLayout(); 
    // 
    // pictureBox1 
    // 
    this.pictureBox1.BackColor = System.Drawing.SystemColors.HotTrack; 
    this.pictureBox1.Location = new System.Drawing.Point(120, 88); 
    this.pictureBox1.Name = "pictureBox1"; 
    this.pictureBox1.Size = new System.Drawing.Size(248, 176); 
    this.pictureBox1.TabIndex = 0; 
    this.pictureBox1.TabStop = false; 
    // 
    // Form1 
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 
    this.ClientSize = new System.Drawing.Size(504, 357); 
    this.Controls.Add(this.pictureBox1); 
    this.Name = "Form1"; 
    this.Text = "Form1"; 
    this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown); 
    this.Load += new System.EventHandler(this.Form1_Load); 
    this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp); 
    this.ResumeLayout(false); 
     
    #endregion 
     
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    Application.Run(new Form1()); 
     
    private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
    this.tmpx = e.X; 
    this.tmpy = e.Y; 
    this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.form1_MouseMove); 
     
     
    private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) 
    this.MouseMove -= new System.Windows.Forms.MouseEventHandler(this.form1_MouseMove); 
     
    System.Drawing.Rectangle pictureBox1Rect=Screen.GetWorkingArea(pictureBox1); 
     
    for(int i=0;i<ScreensRect.Length;i++) 
    if(ScreensRect[i].X==pictureBox1Rect.X && ScreensRect[i].Y==pictureBox1Rect.Y) 
    this.Location=new Point(ScreensRect[i].X,pictureBox1Rect.Y); 
    //MessageBox.Show(" WorkingArea:" + re.ToString()); 
    private void form1_MouseMove(object sender, MouseEventArgs e) 
    this.Location = new System.Drawing.Point(this.Location.X + e.X - this.tmpx, this.Location.Y + e.Y - this.tmpy); 
     
    private void Form1_Load(object sender, System.EventArgs e) 
    Screen[] s=Screen.AllScreens; 
    ScreensRect=new Rectangle[s.Length]; 
    for(int i=0;i<s.Length;i++) 
    ScreensRect[i]= s[i].WorkingArea; 
    }  
  • 相关阅读:
    【百度搜索研发部】以求医为例谈搜索引擎排序算法的基础原理(转)
    TF-IDF与余弦相似性的应用(三):自动摘要
    TF-IDF与余弦相似性的应用(一):自动提取关键词
    TF-IDF与余弦相似性的应用(二):找出相似文章
    技术向:一文读懂卷积神经网络CNN(转)
    [透析] 卷积神经网络CNN究竟是怎样一步一步工作的?(转)
    像素间的基本关系-距离(转)
    Swift学习笔记-字符串和字符(Strings and Characters)-比较字符串 (Comparing Strings)
    Swift学习笔记-基本运算符(Basic Operators)-空合运算符(Nil Coalescing Operator)
    Swift学习笔记-基本运算符(Basic Operators)-求余运算符
  • 原文地址:https://www.cnblogs.com/lizi/p/2360915.html
Copyright © 2020-2023  润新知