2015-10-23 2 views
1

Это то, что у меня есть до сих пор, но оно открывается только на основном мониторе. Моя цель - открыть файл на мониторе, связанный с кнопкой, которую я нажимаю.Как открыть файл из проводника на определенные мониторы при максимальном размере окна?

private void Form1_Load(object sender, EventArgs e) 
    { 
     Point btnTopLeft = new Point(15, 15); 
     foreach (var screen in Screen.AllScreens) 
     { 
      Button btn = new Button(); 
      btn.Text = screen.DeviceName; 
      btn.Size = new Size(100, 23); 
      btn.Location = btnTopLeft; 


      btn.Tag = screen; 
      btn.Click += Btn_Click; 

      this.Controls.Add(btn); 
      btnTopLeft.Offset(0, btn.Height + 7); 
     } 
    } 

    private void Btn_Click(object sender, EventArgs e) 
    { 
     if (sender == null || !(sender is Button)) 
      return; 
     var btn = (Button)sender; 

     if (btn.Tag == null || !(btn.Tag is Screen)) 
      return; 
     var screen = (Screen)btn.Tag; 

     System.Diagnostics.Process.Start("explorer.exe", @"c:\"); 

    } 
+0

Вы хотите открыть файл? Или вы имеете в виду open Explorer в определенном каталоге? –

+1

Возможный дубликат [Запустить приложение и отправить его на второй монитор?] (Http://stackoverflow.com/questions/3750113/launch-an-application-and-send-it-to-second-monitor) – Huntt

ответ

0

Попробуйте использовать метод Screen.GetBounds.

Я считаю, что это даст вам, какой монитор свою кнопку в основном, на https://msdn.microsoft.com/en-us/library/h6dba0zt%28v=vs.110%29.aspx

И это даст вам, какой монитор прямоугольник, в основном, на https://msdn.microsoft.com/en-us/library/5z2btd02%28v=vs.110%29.aspx

Вы также можете дать ему точку , и он вернет тот монитор, в котором находится точка.

Как только вы выясните, на каком мониторе он включен, вы можете снова использовать класс Screen, чтобы получить границы монитора и установить границы приложения.

Ex.

this.Bounds = Screens.AllScreens[1].Bounds; 

Вот как я подхожу к нему первым, хотя может быть и лучший способ. Надеюсь это поможет.

Смежные вопросы