§14 予定表1 | プログラミング実習 |
日付を選択して予定を記録する、また、選択した日付に予定が記録されていれば、それを表示するような簡単な予定表(Schedule)管理プログラムを作成する。
利用するオブジェクト等 |
メニューバー(MenuStrip)「メニューとツールバー」にあり カレンダー(MonthCalendar) |
【1】 プログラム作成の準備
操作 1 Windowsアプリケーションを作成するためのプロジェクトを作成する。プロジェクト名は「実習14予定表」とする。
操作 2 フォーム(Form1)のプロパティを次のように設定する。
Text スケジュール
操作 3 メニューバーオブジェクトを配置し、メニュー項目を設定する。
@ ツールボックスの「メニューとツールバー」グループにある[MenuStrip]をダブルクリックする。
A 配置したオブジェクトの「ここへ入力」をクリックして、「ファイル(&F)」と入力する。
B 「ファイル(&F)」の下に「開く(&O)」と「名前を付けて保存する(&W)」を入力する。
C 「名前を付けて保存する(&W)」の下の「ここへ入力」にマウスポインタを移動すると右端にプルダウンのボタンが現れるので、それをクリックする。プルダウンリストから[Separator]を選択して区切り線を入力する。
D 最後に「終了(&X)」を入力する。
E 「ファイル(&F)」の右に「バージョン(&V)」と入力する。
F プロパティウィンドウで、BackColorプロパティを[システム]タブにあるControlに設定する。
操作 4 最初の図を参考にして、残りの必要なオブジェクトを配置し、プロパティを設定する。
カレンダー (Name) → MCalendar、 CalendarDimensions → 2, 1、 Location → 8, 25 ラベル (Name) → Label1、 Location → 12, 179、 Text → 日 付
(Name) → lblHenko、 Location → 232, 186、 Text → 変更なしテキストボックス (Name) → txtHizuke、 Location → 55, 176、 Size → 100, 19
(Name) → txtMemo、 Location → 12, 201、 Multiline → True、 Size → 286, 53ボタン (Name) → TorokuButton、 Location → 161, 175、 Size → 51, 23、 Text → 登録
操作 5 ツールボックスの[ダイアログ]グループにある「OpenFileDialog」と「SaveFileDialog」があるので、ダブルクリックして配置する。
操作 6 プログラムを保存する。 ( [ファイル(F)] → [すべてを保存(L)] )
操作 7 プログラムを実行する。
カレンダーは動作する。メニューバーのメニューも表示されるが、働きをクリックしても何も起こらない。
【メニューバー(MenuStripオブジェクト)】
メニューの項目には、下線付きの英字が表示されている。たとえば、[ファイル]には(F)と表示されている。[Alt]キーと[F]キーを押すとメニューのファイルが開く。このキーの組み合わせを「アクセスキー」という。
アクセスキーを設定するには、"&F"のように"&"に続けて英字を入力する。メニューバーの項目以外にもボタンでもアクセスキーを設定することができる。
【2】 カレンダーの取得
カレンダーオブジェクトの日付をクリックすると反転表示される。この選択した日付をテキストボックスに曜日を付けて表示する。
操作 8 カレンダーオブジェクトの日付データを表示するメソッドHizukeDisplayを次のように作成する。
Private Sub HizukeDisplay()
Dim youbi As String = "日月火水木金土"
'選択した日付(曜日)を表示
txtHizuke.Text = MCalendar.SelectionStart &
"("
txtHizuke.Text = txtHizuke.Text & youbi.Substring(MCalendar.SelectionStart.DayOfWeek,
1)
txtHizuke.Text = txtHizuke.Text & ")"
End Sub
1行目は、Dim命令で変数youbiを文字列型で宣言している。宣言と同時に値(文字列)を記憶している。
2行目は、選択されている日付(SelectionStartプロパティ)と"("を連結している。
3行目は、曜日を表す文字を連結している。
SelectionStart.DayOfWeekプロパティはSelectionStartプロパティの日付をDayOfWeekプロパティで曜日を表す数値が得られる。日曜日から順に0,1,2,3,4,5,6の数値である。
Substringメソッドで曜日の文字を取り出している。
SelectionStartプロパティと対になるSelectionEndプロパティで複数の日付をドラッグで選択したときの最終日を知ることができる。今回は使っていない。
操作 9 カレンダーオブジェクトの変更(DateChanged)イベントに対応するメソッドを次のように作成する。
Private Sub MCalendar_DateChanged(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MCalendar.DateChanged
HizukeDisplay() '日付表示
End Sub
プログラムを実行した直後は日付が表示されていない。カレンダーの日付をクリックすると、選択した日付が曜日付きでテキストボックスに表示される。
操作 10 プログラムを実行した直後に日付が表示されるようにするため、Loadイベントに対応するメソッドを次のように作成する。フォームをダブルクリックしてメソッドを用意する。
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
HizukeDisplay()
End Sub
日付を表示するプログラムをメソッドHizukeDisplayとして、別に作成した理由がわかっただろうか。
§14 予定表1 | Copyright©2008 Hiroshi Masuda |