ウィンドウズには、「付箋」というソフトが付いています。一見便利なのですが、困ったのは、
- 新しい付箋を作るのは簡単です
- 調子に乗っているうちに、付箋がどんどん増える
- それを削除するのは、一つずつしかできない
- まとめて削除できないので、たくさん作った付箋にうんざりしてしまう
ちょっとしたメモに使いたい、という目的にとっては立派すぎるのです。
パソコンのホワイトボード
磁石で貼り付けるホワイトボードは、私の愛用品です。それが好きなのは、
- 簡単に書ける
- 視線を動かすだけで、すぐ見える
- 簡単に消せる
という点にあります。こうしたものがパソコンにも、あったら良いですね。
長文で保存したいものは、テキストとして保存したら良いのです、ちょっと書いて、すぐ消せる、そういうものがあったら良いな、と思って、「じゃ、作ってしまえ」で、作りました。
例えば、PDFファイルで、ロックされたものがあります。簡単にコピーできません。そういう時には、必要部分をメモ打ちして、そのメモしたものをコピーして、他で使いたい、と思ったりします。そうした時は、エディタを開くのももどかしく、もっと軽くて小さい、ちょこっと書けるものがあればなあ、と思ってきたものです。
そうした時に、このホワイトボードは役立ちます。
また、ふと思いついたアイデア、用事、ちょっとしたメモ、に使えます。磁石で貼り付けるホワイトボードと、うまく使い分けしたら良いと思います。
4つのテキストボックスでホワイトボード
4つのテキストボックスだけです。スクロールバーが一応ありますが、ソフトを軽くするために、文字数は、256文字までと、制限しています。制限数になると、それ以上打てなくなります。狭くて困る場合には、テキストエディタなどをお使いください。

スクロールバーは、ホワイトボードとしては邪魔なだけと思いますが、まさかの時のために、付けています。改行をうまく使えば、テキストボックス1つに、スクロールなしに、3つくらいの項目を書けると思います。
テキストボックスの背景色、フォントを変えていますので、気分に合わせて、4つのエリアを使い分けできます。
テキスト、ウインドウ位置を保存
ホワイトボードを閉じても、テキストボックスの内容とウインドウ位置は保存されます。次に起動した時には、同じ位置に、同じ内容で表示されます。
右クリックメニューに、「消去」と「全体をコピー」、があります。

たったこれだけのものです。意外と便利です。
「ホワイトボード」 のダウンロード
whiteboardフォルダーには、

のようにファイルが入っています。解凍して適当な場所に置いて、ホワイトボード=whiteboard.exe をダブルクリックし、起動してください。このページへのリンクも入っていますので、分からなくなったら、ここにお越しください。
ダウンロードの際に、次のような警告が出ます。^で、継続、ダウンロードした上で、

アンチウイルスソフト(右クリックメニューでMicorsoft Definderなど)でスキャンしてから、お使い下さい。

試してみて、どうだったか、ここをこうしたら良いのではないか、とか、ご意見、ご感想をいただければ幸いです。コメント欄、または「お問い合わせ」からお願いします。
VB.NETのコード
コードは次のようなものです。安心していただけましたら、ダウンロードして、お使いください。
Imports System.ComponentModel
Public Class Form1
Private Const WINDOWPOS_FILE_NAME = "winpos.txt"
Private Const SAVETEXT_FILE_NAME = "data.txt"
Private Const DELIMITTER_STR = "//delimit//"
Dim tbs() As TextBox
Dim tbx As TextBox
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tbs = {TextBox1, TextBox2, TextBox3, TextBox4}
SetWinPos()
SetTexts()
TextBox1.SelectionStart = 0
TextBox1.SelectionLength = 0
End Sub
Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
WriteWinPos()
SaveTexts()
End Sub
Private Sub SaveTexts()
Dim n
Dim sw As New System.IO.StreamWriter(SAVETEXT_FILE_NAME, False) 'Falseは上書き、ファイルがなければ作ってくれる
For n = 0 To tbs.Count - 1
sw.WriteLine(tbs(n).Text)
sw.WriteLine(DELIMITTER_STR)
Next
sw.Close()
End Sub
Private Sub SetTexts()
Dim n, t, tbtxt
If (Not (System.IO.File.Exists(SAVETEXT_FILE_NAME))) Then 'ファイルがなければパス
Exit Sub
End If
Dim sr As New System.IO.StreamReader(SAVETEXT_FILE_NAME)
tbtxt = ""
n = 0
Do Until sr.EndOfStream
t = CStr(sr.ReadLine())
If t = DELIMITTER_STR Then
tbs(n).Text = tbtxt
tbtxt = ""
n += 1
If n >= tbs.Count Then GoTo n_over
Else
tbtxt += t
End If
Loop
n_over:
sr.Close()
End Sub
Private Sub WriteWinPos()
If (Me.Left + Me.Top) < -100 Then 'windowsで閉じられたら書かない
Exit Sub
End If
Dim sw As New System.IO.StreamWriter(WINDOWPOS_FILE_NAME, False) 'Falseは上書き、ファイルがなければ作ってくれる
sw.WriteLine(Me.Left)
sw.WriteLine(Me.Top)
sw.Close()
End Sub
Private Sub SetWinPos()
If (Not (System.IO.File.Exists(WINDOWPOS_FILE_NAME))) Then 'ファイルがなければパス
Exit Sub
End If
Dim sr As New System.IO.StreamReader(WINDOWPOS_FILE_NAME)
Dim l, t As Integer
t = sr.ReadLine()
l = sr.ReadLine()
sr.Close()
Me.Location = New Point(t, l)
End Sub
Private Sub TextBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles TextBox1.MouseDown, TextBox2.MouseDown, TextBox3.MouseDown, TextBox4.MouseDown
If e.Button = MouseButtons.Right Then
tbx = sender
End If
End Sub
Private Sub 消去ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 消去ToolStripMenuItem.Click
If tbx IsNot Nothing Then
tbx.Text = ""
End If
tbx = Nothing
End Sub
Private Sub 全体をコピーToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 全体をコピーToolStripMenuItem.Click
If tbx IsNot Nothing Then
Clipboard.SetText(tbx.Text)
End If
tbx = Nothing
End Sub
End Class
コメント