Indice
A) Mouse
A) Mouse
- Indicazione posizione mouse con riferimento allo schermo
- Indicazione posizione mouse con riferimento al Form
- Sposta il mouse dalla posizione corrente ad un’altra
- Creare nel Form uno spazio Hotspot nel quale il Mouse diventa attivo
- Limitare l’operatività del mouse ad uno spazio predefinito
- Rappresentare in una Label le attività del Mouse
B) Files e cartelle
- Creare una cartella
- Cercare e aprire una cartella
- Elencare le Subdirectory di una Cartella
- Elencare i file di una cartella e leggerne il contenuto
- Creare un file txt e salvarlo in una cartella
- Creare un file Excel e salvarlo
- Creare un file Excel in cui salvare i dati di un Array
- Cercare un file .txt e copiarlo in una RichTextBox
- Cercare un file .txt usando un filtro
- Caricare un file .rtf in un RichTextBox mantenendo la formattazione
- Caricare un file .rtf in un RichTextBox e selezionare una linea
A) MOUSE
1. Indicazione posizione mouse con riferimento allo schermo
Creare un Form e inserire due TextBox e un Timer.
Impostare la proprietà “Enabled” del Timer1 a True
Nel Timer inserire le due righe
seguenti:
TextBox1.Text
= System.Windows.Forms.Cursor.Position.X.ToString
TextBox2.Text = System.Windows.Forms.Cursor.Position.Y.ToString

Nota : Le posizioni sono espresse in numero di pixel corrispondenti alla risoluzione dello schermo (1920x1080 in questo caso). X=0 e Y =0 corrispondono all’angolo in alto a sx dello schermo
2. Indicazione posizione mouse con riferimento al Form
Creare un Form con una Label. Copiare
la seguente Sub subito sotto “Public Class Form1”
Private Sub form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Handles
Me.MouseMove
Label1.Text = "Il
mouse si trova in X: " &
e.X & " Y: " & e.Y
If e.X > 200 Then
Me.BackColor
= Color.Red
Else
Me.BackColor
= Color.Yellow
End If
End Sub
Lo sfondo del Form è giallo. Se il valore di
ascissa di X è > 200 diventa rosso.
L’etichetta informa sul valore X della
posizione del mouse.

Nota: Le posizioni sono espresse in numero di Pixel.
X e Y sono = 0 in corrispondenza
dell’angolo superiore sinistro del Form.
Nota: In alternativa al
copia e incolla: Creare il Form con una Label. In Esplora soluzioni click su
Visualizza Codice. Nella barra di sinistra sopra la finestra del codice, click
su Form1 e quindi su Eventi Form1. Nella barra di destra clic su Dichiarazioni
e quindi su MouseMove: nella finestra del codice comparirà la Sub MouseMove. Al
suo interno scrivere o copiare le linee dalla nr 3 (Label1) alla nr 8 (End If).
3. Sposta il mouse dalla posizione corrente ad un'altra
Creare un Form e un Button. Inserire
nel Button le righe seguenti:
Me.Cursor = New Cursor(Cursor.Current.Handle)
Cursor.Position = New Point(Cursor.Position.X
- 50, Cursor.Position.Y - 50)
Cursor.Clip = New
Rectangle(Me.Location,
Me.Size)
Cliccando Button1 il cursore viene
spostato a sinistra di 50 pixel e in alto di 50 pixel
4. Creare nel Form uno spazio Hotspot nel quale il mouse diventa attivo
Creare un Form con un “PictureBox”. Allargare
le dimensioni del PictureBox fino ad occupare quasi tutto il Form. Inserire il
seguente listato subito sotto la “Public Class Form1”
Dim
hotspot1 As Rectangle
= New Rectangle(100,
100, 250, 250)
Private Sub PictureBox1_MouseClick(ByVal
sender As System.Object,
ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
If
hotspot1.Contains(e.X, e.Y) Then
Beep()
End If
End Sub
Private Sub PictureBox1_MouseMove(ByVal
sender As System.Object,
ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If
hotspot1.Contains(e.X, e.Y) Then
Cursor = Cursors.Hand
Else
Cursor = Cursors.Default
End If
End Sub
Quando il cursore è all’interno del
rettangolo di hotspot1 il cursore viene attivato e da freccia diventa una mano
(Sub 2). Cliccando il tasto sinistro del mouse suona un Beep (Sub 1).
Nota : Le coordinate del rettangolo
Hotspot partono da 0,0 nell’angolo alto a sinistra del PictureBox (non del
Form)
5. Limitare l'operatività del mouse ad uno spazio predefinito
Creare un nuovo progetto con un Form, due Button ed un Panel. Allargare il Formo fino a portarlo a 800 x 600. Dimensionare il Panel su 300 x 300. I due Button sono posti a sinistra del Panel.
Doppio clic su Button1 e inserire il seguente codice:
Windows.Forms.Cursor.Clip = New Rectangle(Me.Panel1.Left + Me.Left + 5, _
Me.Panel1.Top + Me.Top + 23, Me.Panel1.Width, Me.Panel1.Height)
Doppio clic su Button2 e inserire il seguente codice:
Windows.Forms.Cursor.Clip = New Rectangle(Me.Left, Me.Top, Me.Width, Me.Height)
Doppio clic su Button3 e inserire il seguente codice:
Close()
Il Button1 è operativo soltanto all’interno del Panel, il Button2 è operativo soltanto all’interno del Form. Il Button3 chiude l’applicazione
6. Rappresentare in una Label le attività del mouse
Sotto Public Class Form1 inserire le seguenti righe di codice:
Private Sub Form1_MouseEvent(ByVal sender As Object, ByVal e As MouseEventArgs) _ Handles MyBase.MouseDown, MyBase.MouseUp, MyBase.MouseMove, MyBase.MouseWheel
Label1.Text = String.Format("Mouse: Buttons={0} x={1} y={2} Clicks={3} Delta={4}", e.Button, e.X, e.Y, e.Clicks, e.Delta)
End Sub
Nella Label1 verranno date le seguenti informazioni:
Nella Label1 verranno date le seguenti informazioni:
- Tasto premuto
- Posizione X
- Posizione Y
- Clic singolo o doppio
- Senso di rotazione della rotella (+120 = in avanti, -120 = indietro)
B) FILES E CARTELLE
B) FILES E CARTELLE
1. Creare una nuova cartella
Creare un nuovo progetto con un Form. Cliccare sul Form1
per entrare in visualizzazione codice.
Nella riga sopra Public Class Form 1 scrivere il codice:
Import System.IO.File
All’interno di Private Sub Form1 scrivere o copiare il seguente
codice:
My.Computer.FileSystem.CreateDirectory("C:\path")
2. Cercare e aprire una cartella
Creare un nuovo progetto con un Form e
un Button
Cliccare due volte su Button e inserire le seguenti
righe:
Dim openFileDialog1 As New OpenFileDialog()
If (openFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
System.IO.File.ReadAllText(openFileDialog1.FileName)
End
if
9. Elencare le Subdirectory di una Cartella
Creare un progetto con un Form, una
etichetta, un Button e un TextBox. Cliccate due volte sul Button e inserite il
seguente codice:
Try
Dim dirPath As String = "c:\Windows"
Dim dirs As List(Of String) = New List(Of String)(Directory.EnumerateDirectories(dirPath))
Dim a(100) As String
Dim i As Integer
i = 1
For
Each folder In
dirs
folder.Substring(folder.IndexOf("\")
+ 1)
Next
Label1.Text = "directories found." & dirs.Count
For
Each folder In
dirs
a(i) =
folder.Substring(folder.LastIndexOf("\")
+ 1)
TextBox1.Text = TextBox1.Text
& a(i) & Chr(13) & Chr(10)
i = i + 1
Next
Catch
UAEx As UnauthorizedAccessException
TextBox1.Text = (UAEx.Message)
Catch
PathEx As PathTooLongException
TextBox1.Text = (PathEx.Message)
End Try
3. Elencare i file di una cartella e leggerne il contenuto
Creare un nuovo progetto con Form, Button, ListBox e
RichTextBox. Inserire Imports System.IO Prima
di Public Class Form1.
Doppio clic su Button1 e inserimento delle seguenti
linee:
Dim doc() As String
doc = Directory.GetFiles("g:\VB")
Dim
path As String
For Each path In doc
ListBox1.Items.Add(path)
‘inserisce le righe di file
nella ListBox1
Next
Doppio clic su ListBox1. Selezionare l’evento Click.
Nella Private Sub
ListBox1_Click inserire le seguenti righe:
‘scrive il contenuto del file
selezionato nel RichTextBox1
read = File.OpenText(ListBox1.SelectedItem)
While
read.Peek <> -1
RichTextBox1.Text =
RichTextBox1.Text + read.ReadLine()
End While
4. Creare un file .txt e salvarlo in una cartella
Creare un nuovo progetto con un Form. Cliccare sul Form1
per entrare in visualizzazione codice.
Nella riga sopra Public Class Form 1 scrivere il codice:
Import System.IO.File
All’interno di Private Sub Form1 scrivere o copiare il
seguente codice:
scrivi = IO.File.CreateText("C:\temp\HelpFile.txt")
scrivi.WriteLine("File Help di prova" & Chr(13) &
Chr(13) & "Testo del file....")
scrivi.Close()
Viene creato il file HelpFile.txt. Il File viene salvato
nella cartella C:\temp\
5. Creare un file Excel e salvarlo
Creiamo un file Excel chiamato “archiviodati”
e lo salviamo con i dati di tre colonne in una directory chiamata “Cartella”
Creare un Form in un nuovo progetto. Aggiungere
la libreria Excel : dal Menu Progetto => Aggiungi Riferimento =>Com aggiungere il riferimento ad Excel. Creare un
Modulo e inserire le seguenti righe:
Public excel As
Microsoft.Office.Interop.Excel.Application
Public
wb As Microsoft.Office.Interop.Excel.Workbook
Public ws As Microsoft.Office.Interop.Excel.Worksheet
Public Nome As String
Public Eta As Integer
Public Data As String
Aprire la pagina del codice di
Form1_Load…. e inserire le seguenti righe:
excel = New
Microsoft.Office.Interop.Excel.Application
If (My.Computer.FileSystem.FileExists("c:\Cartella\archiviodati.xlsx") = False) Then
‘se il file non esiste
viene creato
MsgBox("Non esiste un archivio dati.
Viene pertanto creato un file Excel in
c:\Cartella\archiviodati.xlsx")
excel = CreateObject("Excel.Application")
wb = excel.Workbooks.Add
ws = wb.Worksheets(1)
' Inserisce i titoli delle tre colonne
ws.Range("A1").Value = "Nome"
ws.Range("B1").Value
= "Età"
ws.Range("C1").Value
= "Data"
wb.SaveAs("c:\Cartella\archiviodati.xlsx")
End
If
‘Se il file esiste
viene aperto e letto
wb = excel.Workbooks.Open("c:\Cartella\archiviodati.xlsx")
ws = excel.ActiveSheet
Nome = ws.Cells(2, 1).Value 'Preleva il valore
Nome
Eta = ws.Cells(2, 2).Value
Data =
ws.Cells(2, 3).Value
La creazione di un Modulo (e la
dichiarazione di variabili Public) non é condizione necessaria ma è utile nel
caso si voglia sviluppare il programma utilizzando più di un Form.
Per completare il programma e testarlo
è necessario aggiungere degli inputBox che leggono i valori, scriverli nelle
celle con wb.Range(“A2”).Value=Nome etc…
e salvare (Button) il file . Aggiungendo le Label i valori si possono
visualizzare sul Form1.
Volendo memorizzare più dati (nel caso
di programmi che richiedono la memorizzazione nella forma di un database) si
dovrà ricorrere ad un array in lettura e scrittura (vedi prossimo listato).
6. Creare un file Excel in cui salvare i dati di un Array
Creare un nuovo progetto con un Form,
un Button e un TextBox. Dal Menu Progetto => Aggiungi Riferimento =>Com aggiungere il riferimento ad Excel.
Doppio clic su Button e inserimento
delle seguenti righe di codice:
Dim excel As Object
Dim wb As Object
Dim ws As Object
Dim
Nome(10) As String
Dim
Età(10) As Integer
Dim
Path As String
Dim Prompt As String
Prompt = "Inserire un percorso,
completo di nomefile, in cui memorizzare i dati" & Chr(13)
& Chr(10) & "(Esempio: c:\Documenti\Prova.xlsx)"
Path = InputBox(Prompt)
'Crea un
nuovo workbook in Excel
Excel = CreateObject("Excel.Application")
wb = excel.Workbooks.Add
'Crea un array con 2 colonne e 10
righe
Dim
DataArray(0 To 9, 0 To
1) As Object
Dim i As Integer
'Aggiunge i titoli al worksheet nella riga 1
ws = wb.Worksheets(1)
ws.Range("A1").Value
= "Nome"
ws.Range("B1").Value
= "Età"
i = 1
'Crea i dati
Do Until
i = 4
Prompt = "inserisci
nome"
Nome(i) = InputBox(Prompt)
Prompt = "Inserisci
Età"
Età(i) = InputBox(Prompt)
DataArray(i - 1, 0) = Nome(i)
DataArray(i - 1, 1) = Età(i)
i = i + 1
Loop
'Trasferisce l'Array nel worksheet a partire
dalla cella A2
ws.Range("A2").Resize(10,
2).Value = DataArray
'Salva il Workbook e esce da
Excel
wb.SaveAs(Path)
excel.Quit()
TextBox1.Text = "I
dati sono stati salvati correttamente in " & Path
End Sub
Nota: Aggiungere il controllo degli
Input e degli errori
7. Cercare un file .txt e copiarne il testo in una RichTextBox
Creare un nuovo progetto con un Form,
un Button e un RichTextBox
Cliccare due volte su Button e inserire le seguenti righe:
Dim openFileDialog1 As New OpenFileDialog()
If (openFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
RichTextBox1.Text = System.IO.File.ReadAllText(openFileDialog1.FileName)
End If
8. Cercare un file .txt usando un filtro
Nota: Sviluppare questo programma in
modo da impostare i filtri con un InputBox
Imports System.IO
Public Class Form1
Private Sub Button1_Click_1(sender As
System.Object, e As
System.EventArgs) Handles
_ Button1.Click
Dim
myStream As Stream
= Nothing
Dim
openFileDialog1 As New
OpenFileDialog()
openFileDialog1.InitialDirectory = "c:\"
openFileDialog1.Filter = "(*.txt)|*.txt|(*.*)|*.*|(*.rtf)|*.rtf"
openFileDialog1.FilterIndex = 3
openFileDialog1.RestoreDirectory = True
If
openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK
Then
Try
myStream =
openFileDialog1.OpenFile()
If
(myStream IsNot Nothing)
Then
'
Insert code to read the stream here.
End
If
Catch
Ex As Exception
MessageBox.Show("Cannot read file from disk. Original error: "
& Ex.Message)
Finally
' Check this
again, since we need to make sure we didn't throw an exception on open.
If
(myStream IsNot Nothing)
Then
myStream.Close()
End
If
End
Try
End If
End Sub
End Class
9. Caricare un file .rtf in un RichTextBox mantenendo la formattazione
Creare un progetto con un Form e un
Button. Due clic sul Button e inserire la seguente riga:
RichTextBox2.LoadFile("G:\Analisi transazionale.rtf", RichTextBoxStreamType.RichText)
10. Caricare un file .rtf in un RichTextBox e selezionare una linea
Creare un nuovo progetto con un Form due Button e un
RichTextBox. Cliccare sul Form1 per entrare in visualizzazione codice e
inserire il seguente codice:
Private Sub SelectLine(ByVal lineNumber As Integer, ByVal
richTextBox As RichTextBox)
Dim
begin As Integer
= 0
' add the
length of the lines
For i As Integer = 0 To lineNumber - 1
begin +=
richTextBox.Lines(i).Length
'
aggiungo 1 a begin per Environment.NewLine
begin += 1
Next
Dim
length As Integer
= richTextBox.Lines(lineNumber).Length
richTextBox.[Select](begin, length)
End Sub
Private Sub Button1_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button1.Click
RichTextBox1.LoadFile("C:\temp\SelezionaLinea.rtf", RichTextBoxStreamType.RichText)
Me.RichTextBox1.HideSelection = False
SelectLine(1, Me.RichTextBox1) 'il conteggio inizia da 0; 1 corrisponde quindi alla linea
2
End Sub
Private
Sub Button2_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button2.Click
RichTextBox1.LoadFile("C:\temp\SelezionaLinea.rtf", RichTextBoxStreamType.RichText)
Me.RichTextBox1.HideSelection = False
SelectLine(3, Me.RichTextBox1) 'corrisponde alla linea 4
End Sub
Salvare un file di nome SelezionaLinea.rtf, con un
testo di almeno 5 righe, nella cartella C:\temp\ (Caricando l’esempio si
ottiene anche questo file)
Cliccando sul Button 1 si apre il file
in RichTextBox e la linea 2 viene evidenziata. Cliccando Button2 si evidenzia
la linea 4
Nessun commento:
Posta un commento