Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Come verificare se un punto è visibile nello schermo

Il post mostra un semplice tip per vedere se un punto è visibile nello schermo (anche in presenza di più schermi).

La grafica dell'esempio è "mozzafiato":

image

 

Il codice è invece il seguente:

   1: Public Class Form1
   2:  
   3:     Private Sub Button1_Click(ByVal sender As System.Object, _
   4:                 ByVal e As System.EventArgs) Handles Button1.Click
   5:         Me.TxtEsito.Text = "..."
   6:         Dim p As Point
   7:         Try
   8:             Me.Cursor = Cursors.WaitCursor
   9:             Threading.Thread.Sleep(120)
  10:             p = New Point(Me.TxtX.Text, Me.TxtY.Text)
  11:             Dim s As Screen = Screen.FromPoint(p)
  12:             If s Is Nothing Then
  13:                 Me.TxtEsito.Text = "non nello schermo"
  14:             Else
  15:                 Me.TxtEsito.Text = "Schermo '" & s.DeviceName & "'"
  16:                 ' Verifica se il punto è contenuto
  17:                 If s.WorkingArea.Contains(p) Then
  18:                     Me.TxtEsito.Text &= ": il punto è contenuto!"
  19:                 Else
  20:                     Me.TxtEsito.Text &= ": il punto NON è contenuto!"
  21:                 End If
  22:             End If
  23:         Catch ex As Exception
  24:             Me.TxtEsito.Text = ex.Message
  25:         Finally
  26:             Me.Cursor = Cursors.Default
  27:         End Try
  28:     End Sub
  29:  
  30:  
  31: End Class

 

In pratica è sufficiente determinare lo schermo che "dovrebbe" mostrare il punto che ci interessa:

Dim s As Screen = Screen.FromPoint(p)

Ho scritto "dovrebbe" in quanto, se nessuno schermo contiene quel punto allora il metodo restituisce lo schermo più "vicino" al punto.

A questo punto, per essere sicuri che il punto sia contenuto nell'area visibile dello schermo, basta eseguire la seguente chiamata:

If s.WorkingArea.Contains(p) Then

Print | posted on giovedì 4 dicembre 2008 03:23 | Filed Under [ Tips .Net ]

Powered by:
Powered By Subtext Powered By ASP.NET