Solved

How do I tell which monitor a form is on when there are more than 2 monitors

Posted on 2011-03-10
2
332 Views
Last Modified: 2012-06-27
Friends,

I have used a routine in the past to reopen a form on a dual screen setup; however, my company now has a four monitor setup where they run this app.

I tried the attached code, but I cannot make it work, it never correctly identifies the right monitor that the ResultViewerForm is on...

Even if I have the form on the second display, it shows that the display (i) is zero.

I want to use this saved in the application properties, to open subsequent forms in the same location/screen.

Thanks in advance!

When I run the attached code, here are my variables on the second loop through...:

            i      1      Integer
            String1      "\\.\DISPLAY2"      String
            String2      "\\.\DISPLAY1,"      String


The thing I don't understand is that String2 should say DISPLAY2, because that is the monitor it is on:

I guess what I need help with, is how do I get the form to tell me which screen it's on...
For i As Integer = 0 To Screen.AllScreens().Length - 1

            Dim String1 As String = stringtoasc(Screen.AllScreens(i).DeviceName.ToString)
            Dim String2 As String = stringtoasc(Screen.FromControl(ResultViewerForm).DeviceName.ToString)

            If String1 = String2 Then
                My.Settings.StartupLocation_Scrn = i
            End If

Open in new window

0
Comment
Question by:indy500fan
2 Comments
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 35102414
I would think that you could test if the form's location is within the working area of a Screen.

Untested example:

For Each screen As Screen In Screen.AllScreens
    If screen.WorkingArea.Contains(Me.Location) Then
    End If
Next screen

Open in new window

0
 

Author Comment

by:indy500fan
ID: 35143127
Bob,

I'm glad you responded.  I'm going to test your suggestion, but I had to move on with a brute force solution.  Looking at it, I think it will work (you've not led me wrong in the past), so I will accept your suggestion as the solution.

Thanks,

Eric
0

Featured Post

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

790 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question