ファイルをバイナリ形式で表示する (C#/VB Winow Form編)
ディレクトリツリー・ビュー、ファイル一覧表示ビューおよび、ファイルデータ表示ビューの初期化を行います。
各ビューは独立したクラスとなっていなくて、「MainForm.cs」(VBの場合は「MainForm.vb」)に集まってしまっているので、各ビュー毎にファイルを分割します。
(1つのクラスに沢山の機能が入ってしまうときは、ある程度まとまった機能ごとにファイルを分割した方が保守性はよいです。)
ディレクトリツリー・ビューの機能は「FileTreeView.cs」(VBの場合は「FileTreeView.vb」)にまとめます。
ファイル一覧表示ビューの機能は「FileListView.cs」(VBの場合は「FileListView.vb」)にまとめます。
ファイルデータ表示ビューの機能は「FileDataView.cs」(VBの場合は「FileDataView.vb」)にまとめます。
C# ソースコード [MainForm.cs]
// -----------------------------------------------------------------------
/// <summary>
/// メインフォームの初期処理.
/// </summary>
/// <param name="sender">
/// イベントを発生させたオブジェクト.
/// </param>
/// <param name="e">
/// イベント・パラメータ.
/// </param>
private void MainForm_Load( object sender, EventArgs e )
{
//! ディレクトリツリー・ビューを初期化する.
FileView_Init();
//! ファイル一覧表示ビューを初期化する.
FileList_Init();
//! ファイルデータ表示ビューを初期化する.
FileData_Init();
}
VB ソースコード [MainForm.vb]
'' -----------------------------------------------------------------------
''' <summary>
''' 初期処理.
''' </summary>
''' <param name="sender">
''' イベント対象のオブジェクト.
''' </param>
''' <param name="e">
''' イベントパラメータ.
''' </param>
Private Sub MainForm_Load( sender As Object, e As EventArgs ) Handles MyBase.Load
' ディレクトリツリーを初期化する.
FileView_Init()
' ファイル一覧を初期化する.
FileList_Init()
' バイナリ表示画面を初期化する.
FileData_Init()
End Sub
メインフォームの初期化処理で各ビュー(ディレクトリツリー・ビュー、ファイル一覧表示ビューおよび、ファイルデータ表示ビュー)の初期化を行います。
C# ソースコード [FileTreeView.cs]
// -----------------------------------------------------------------------
/// <summary>
/// ディレクトリツリーの初期処理.
/// </summary>
private void FileView_Init()
{
//! コンピュータ名をディレクトリツリーのルートに登録する.
var root = AddRootNode();
//! ディレクトリツリーにドライブ名を登録する.
AddDriveName( root );
//! ルートノードを展開して表示する.
root.Expand();
}
VB ソースコード [FileTreeView.vb]
'' -----------------------------------------------------------------------
''' <summary>
''' ディレクトリツリーの初期処理.
''' </summary>
Private Sub FileView_Init()
' マシン名をディレクトリツリーのルートに登録する.
Dim root As TreeNode = AddRootNode()
' ディレクトリツリーにドライブ名を登録する.
AddDriveName( root )
' ルートノードを展開して表示する.
root.Expand()
End Sub
最初にルートノードにコンピュータ名を登録します。
次にルートノードの子ノードとしてドライブ名のリストを登録します。
最後にルートノードを展開表示します。
C# ソースコード [FileTreeView.cs]
// -----------------------------------------------------------------------
/// <summary>
/// ファイル一覧のビューを初期化する.
/// </summary>
private void FileList_Init()
{
//! ファイル一覧にカラムを追加する.
FileList.Columns.Add( "ファイル名", 200, HorizontalAlignment.Left );
FileList.Columns.Add( "サイズ" , 120, HorizontalAlignment.Right );
FileList.Columns.Add( "更新日時" , 150, HorizontalAlignment.Left );
//! ファイル一覧にドライブ名を表示する.
ShowDriveName();
}
VB ソースコード [FileTreeView.vb]
'' -----------------------------------------------------------------------
''' <summary>
''' ファイル一覧のビューを初期化する.
''' </summary>
Private Sub FileList_Init()
' ファイル一覧にカラムを追加する.
FileList.Columns.Add( "ファイル名", 200, HorizontalAlignment.Left )
FileList.Columns.Add( "サイズ" , 120, HorizontalAlignment.Right )
FileList.Columns.Add( "更新日時" , 150, HorizontalAlignment.Left )
' ファイル一覧にドライブ名を表示する.
ShowDriveName()
End Sub
リストビューのカラムを設定します。
カラム位置 | カラム名 | 表示位置 | カラムの幅 |
1 | ファイル名 | 左詰め | 200 |
2 | サイズ | 右詰め | 120 |
3 | 更新日時 | 左詰め | 150 |
最後にファイル一覧にドライブ名のリストを初期データとして表示します。
C# ソースコード [FileDataView.cs]
// -----------------------------------------------------------------------
/// <summary>
/// ファイルデータ表示ビューを初期化する.
/// </summary>
private void FileData_Init()
{
//! 垂直スクロールバーを初期化する.
FileDataVScroll.Value = 0;
FileDataVScroll.Minimum = 0;
FileDataVScroll.Maximum = 0;
//! 水平スクロールバーを初期化する.
FileDataHScroll.Value = 0;
FileDataHScroll.Minimum = 0;
FileDataHScroll.Maximum = 80;
//! ホイールイベントの追加.
FileData.MouseWheel += new System.Windows.Forms.MouseEventHandler( FileData_MouseWheel );
}
VB ソースコード [FileDataView.vb]
'' -----------------------------------------------------------------------
''' <summary>
''' バイナリ表示画面のビューを初期化する.
''' </summary>
Private Sub FileData_Init()
' 垂直スクロールバーを初期化する.
FileDataVScroll.Value = 0
FileDataVScroll.Minimum = 0
FileDataVScroll.Maximum = 0
' 水平スクロールバーを初期化する.
FileDataHScroll.Value = 0
FileDataHScroll.Minimum = 0
FileDataHScroll.Maximum = 80
' ホイールイベントの追加.
AddHandler FileData.MouseWheel, New System.Windows.Forms.MouseEventHandler( AddressOf FileData_MouseWheel )
End Sub
垂直スクロールバーを初期化します。
水平スクロールバーを初期化します。
ホイールマウスのイベントを追加します。