Public Class MainFormDesktopNotes
Private Sub BtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNew.Click
Dim NewForm As New MainFormDesktopNotes
'viene creata una classe esattamente uguale a quella della finestra
NewForm.Show()
'questa classe rappresenta la finestra e ne ha le stesse proprietÃ
'viene quindi mostrata all'utente e si comporta come se foose lo stesso
'programma aperto un'altra volta. infatti questa classe è totalmente
'indipendente dalla prima finestra aperta.
'volendo avrei anche potuto usare la funzione My.Application.Run
'che riapre il programma
End Sub
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
Dim Save As New SaveFileDialog
'viene aperta una finestra per permettere all'utente di scegliere
'dove salvare il file
Save.Filter = "File di testo|*.txt|Tutti i file|*.*"
Save.DefaultExt = "txt"
If Save.ShowDialog = Windows.Forms.DialogResult.OK Then
'uuna volta scelto il percorso del file
'viene aperto uno streamwriter
Dim writer As New IO.StreamWriter(Save.FileName)
'questo scrive un certo testo nel percorso indicatogli
'tra parentesi durante la dichiarazione
writer.Write(TbxText.Text)
writer.Close()
End If
End Sub
Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOpen.Click
Dim open As New OpenFileDialog
open.Filter = "File di testo|*.txt|Tutti i file|*.*"
'viene permesso all'utente di scegliere il file da aprire.
If open.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim Reader As New IO.StreamReader(open.FileName)
'viene letto tutto il contenuto del file e depositato nella casella di testo
TbxText.Text = Reader.ReadToEnd
Reader.Close()
End If
End Sub
Private Sub BtnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClose.Click
If TbxText.Text = "" Then
Me.Close()
'se scrivessi application.exit chiuderei il programma, cosa da evitare
'visto che chiudendo il programma si perderebbero anche tutti gli appunti contenuti
'nelle altre finestre del programma.
'se l'utente non ha scritto nulla il programma si chiude
Else
'altrimenti chiede all'utente se vuole salvare il file
If MessageBox.Show("C'è del testo, lo salvo?", "DesktopNotes", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
BtnSave_Click(BtnClose, e)
Me.Close()
Else
Me.Close()
End If
End If
End Sub
Private Sub BtnOption_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOption.Click
OptionForm.Show()
'viene mostrata all'utente la finestra delle opzioni
End Sub
Dim p As Point
Private Sub Btn_MouseDown(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles BtnMove.MouseDown, BtnSizeNWSE.MouseDown, BtnSizeWE.MouseDown, BtnSizeNS.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
p = New Point(e.X, e.Y)
'viene impostata la variabile p sulle coordinate del click
End If
End Sub
Private Sub BtnMove_MouseMove(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles BtnMove.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Location = New Point(Me.Location.X + e.X - p.X, Me.Location.Y + e.Y - p.Y)
'viene spostata la finestra
End If
End Sub
Private Sub BtnSizeAll_MouseMove(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles BtnSizeNWSE.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Size = New Size(Me.Size.Width + e.X - p.X, Me.Size.Height + e.Y - p.Y)
'viene spostata la finestra
End If
End Sub
Private Sub BtnSizeWidth_MouseMove(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles BtnSizeWE.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Size = New Size(Me.Size.Width + e.X - p.X, Me.Size.Height)
'viene ridimensiona solo la larghezza della finestre
End If
End Sub
Private Sub BtnSizeHeight_MouseMove(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles BtnSizeNS.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Size = New Size(Me.Size.Width, Me.Size.Height + e.Y - p.Y)
'viene ridimensionata solo l'altezza della finestra
End If
End Sub
'il drag and drop sarebbe stato inutile, perchè l'evento dragenter si verifica solo
'quando il cursore "entra" in un oggetto. invece l'evento mousemove si verifica quando
'il mouse si muove sopra un oggetto sia che sia premuto sia che non lo sia.
'perchè queste procedure funzionino per lo scopo per il quale sono state scritte è stata
'dichiarata una variabile di tipo point prima di esse. prima di scriverle ho pensato che quando
'il mouse clicca su un pulsante e si muove la la finestra si deve muovere facendo sì che il
'punto dove ha cliccato il pulsante sia sempre alle stesse coordinate rispetto alla posizione
'del pulsante. ora non è molto difficile intuire che se il mouse si sposta in bass anche la
'finestra si si sposta in basso. (cosa che sarebbe meglio capire ancora prima di pensare
'a cosa scrivere)
End Class