Imports System.IO
Public Class FrmMain
Dim nl As String = Environment.NewLine
Dim tf As String = "C:\ProgramData\Notez\temp.txt"
Dim td As String = "C:\ProgramData\Notez\"
Dim t As New List(Of String)()
Dim mb As String = "Left"
Private Sub TextBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick
TextBox1.Text &= nl & System.Windows.Forms.Clipboard.GetText
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TopMost = True
Me.Top = My.Computer.Screen.WorkingArea.Height - Me.Height
Me.Left = 0
If File.Exists(tf) Then
Dim s() As String = File.ReadAllText(tf).Split(nl)
For Each a As String In s
If a <> "" And a <> " " And a <> " " And a <> nl And a <> vbNullChar And a <> vbNullString Then
LstNotes.Items.Add(a)
t.Add(a)
End If
Next
End If
End Sub
Private Sub ListBox1_RightClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LstNotes.MouseDown
If e.Button = MouseButtons.Right Then
mb = "Right"
If LstNotes.Items.Count > 0 Then
Try
Dim i As Integer = LstNotes.IndexFromPoint(e.X, e.Y)
Dim d As Integer = LstNotes.SelectedIndex
If i <> d Then
LstNotes.SelectedIndex = LstNotes.IndexFromPoint(e.X, e.Y)
If LstNotes.SelectedItems.Count > 0 Then
LstNotes.Items.RemoveAt(LstNotes.SelectedIndex)
End If
Else
LstNotes.Items.RemoveAt(LstNotes.SelectedIndex)
End If
Catch ex As Exception
Try
LstNotes.Items.RemoveAt(LstNotes.SelectedIndex)
Catch ex2 As Exception
CMSave.Show(PointToScreen(e.Location))
End Try
End Try
Else
LstNotes.SelectedIndex = LstNotes.IndexFromPoint(e.X, e.Y)
If LstNotes.SelectedItems.Count > 0 Then
LstNotes.Items.RemoveAt(LstNotes.SelectedIndex)
End If
End If
Else
mb = "Left"
End If
End Sub
Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LstNotes.DoubleClick
placest()
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LstNotes.SelectedIndexChanged
If LstNotes.SelectedItems.Count > 0 Then
If mb = "Left" Then
Dim found As Boolean = False
For Each t As String In LstNotes.Items
If t.ToString = System.Windows.Forms.Clipboard.GetText() Then
found = True
End If
Next
If found = False Then
Dim result As Integer = MessageBox.Show("Copy clipboard without saving string?", "Save String?", MessageBoxButtons.YesNo)
If result = DialogResult.Yes Then
copyst()
Else
placest()
copyst()
End If
Else
copyst()
End If
Else
End If
End If
mb = "Left"
End Sub
Private Sub placest()
Dim s As String = System.Windows.Forms.Clipboard.GetText()
LstNotes.Items.Add(s)
t.Add(s)
End Sub
Private Sub copyst()
If LstNotes.SelectedItems.Count.ToString > 0 Then
Try
System.Windows.Forms.Clipboard.SetText(LstNotes.SelectedItem.ToString)
Catch ex As Exception
End Try
End If
End Sub
Private Sub BtnRenew_Click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles BtnRenew.Click
CMSave.Show(PointToScreen(e.Location))
End Sub
Private Sub BtnAccept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAccept.Click
Dim s As String = TxtMore.Text
If TxtMore.Text <> "" Then
LstNotes.Items.Add(s)
t.Add(s)
TxtMore.Clear()
TxtMore.Focus()
End If
End Sub
Private Sub BtnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClear.Click
If LstNotes.Items.Count = 0 Then
t.Clear()
Else
LstNotes.Items.Clear()
End If
End Sub
Private Sub FrmMain_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
TxtMore.Top = BtnRenew.Height
TxtMore.Left = 0
TxtMore.Width = Me.Width - 15
TxtMore.Height = SplitContainer1.Panel1.Height - BtnRenew.Height
LstNotes.Top = SplitContainer1.Panel2.Top
LstNotes.Height = SplitContainer1.Panel2.Height - 2
End Sub
Private Sub RefreshToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RefreshToolStripMenuItem.Click
LstNotes.Items.Clear()
For Each Str As String In t
LstNotes.Items.Add(Str)
Next
End Sub
Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click
Dim s As SaveFileDialog = New SaveFileDialog()
s.Filter = "TXT Files|*.txt"
If s.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
If s.FileName.Contains(".txt") Then
Dim t As String = Nothing
Dim c As Integer = LstNotes.Items.Count
Dim i As Integer = 0
For Each q As String In LstNotes.Items
i = i + 1
If i = c Then
If t <> "" Then
t &= q
End If
Else
If t <> "" Then
t &= q & nl
End If
End If
Next
If File.Exists(s.FileName) Then
Dim result As Integer = MessageBox.Show("Overwrite Existing?", "Save File", MessageBoxButtons.YesNoCancel)
If result = DialogResult.Yes Then
Try
File.Delete(s.FileName)
File.WriteAllText(s.FileName, t)
Catch ex As Exception
MsgBox("File in use.", MsgBoxStyle.Exclamation, "Error")
End Try
End If
End If
End If
End If
s.Dispose()
End Sub
Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem.Click
Dim s As OpenFileDialog = New OpenFileDialog()
s.Filter = "TXT Files|*.txt"
If s.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
If s.FileName.ToString.ToUpper.Contains("TXT") Then
Else
MsgBox("Not a TXT file.", MsgBoxStyle.Exclamation, "Error")
End If
Dim a() As String = File.ReadAllText(s.FileName).Split(nl)
LstNotes.Items.Clear()
t.Clear()
For Each st As String In a
If st <> "" And st <> " " And st <> nl Then
LstNotes.Items.Add(st)
t.Add(st)
End If
Next
End If
s.Dispose()
End Sub
Private Sub writetemp()
Dim c As Integer = LstNotes.Items.Count
Dim i As Integer = 0
Dim s As String = Nothing
For Each t As String In LstNotes.Items
i = i + 1
If i = c Then
If t <> "" Then
s &= t
End If
Else
If t <> "" Then
s &= t & nl
End If
End If
Next
If Directory.Exists(td) = False Then
Directory.CreateDirectory(td)
End If
File.WriteAllText(tf, s)
End Sub
Private Sub FrmMain_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
If File.Exists(tf) Then
File.Delete(tf)
writetemp()
Else
writetemp()
End If
End Sub
Private Sub AutoCollectToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AutoCollectToolStripMenuItem.Click
If TmrCollect.Enabled = False Then
TmrCollect.Start()
AutoCollectToolStripMenuItem.Font = New Drawing.Font("Segoe UI", 9, FontStyle.Regular)
Else
TmrCollect.Stop()
AutoCollectToolStripMenuItem.Font = New Drawing.Font("Segoe UI", 9, FontStyle.Strikeout)
End If
End Sub
Private Sub TmrCollect_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmrCollect.Tick
Try
Dim a As String = System.Windows.Forms.Clipboard.GetText(TextDataFormat.Text)
Dim got As Boolean = False
For Each s As String In LstNotes.Items
If s = a Then
got = True
End If
Next
If got = False Then
LstNotes.Items.Add(a)
t.Add(a)
End If
Catch
End Try
End Sub
Private Sub TopMostToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TopMostToolStripMenuItem.Click
If Me.TopMost = True Then
Me.TopMost = False
TopMostToolStripMenuItem.Font = New Drawing.Font("Segoe UI", 9, FontStyle.Strikeout)
Else
Me.TopMost = True
TopMostToolStripMenuItem.Font = New Drawing.Font("Segoe UI", 9, FontStyle.Regular)
End If
End Sub
End Class