テキスト表示用C1TabControlコントロールの設定
今度は、テキスト表示用C1TabControlコントロールの設定を行います。
右側に配置したC1TabControlコントロールですが、デザイン時点ではタブページは追加しません。ここでは、コントロールの右端に[閉じる]ボタンとドロップダウンリストを表示するボタンの設定のみ行います。
コントロールの右端に[閉じる]ボタンを設定するには、「TabItemClose」プロパティの値を「GlobalClose」に設定します。これで、「閉じる」ボタンは個々のタブページには付かず、C1TabControlコントロールに1つだけ付きます。
また、タブページのリストを表示するドロップダウンリストボタンを使うには、「TabStripMenuVisibility」プロパティを「Visible」に設定します。
<c1:C1TabControl Height="358" HorizontalAlignment="Left" Name="c1TabControl1" VerticalAlignment="Top" Width="535" TabItemClose="GlobalClose" TabStripMenuVisibility="Visible" TabStripPlacement="Top" Margin="204,30,0,0"> </c1:C1TabControl>
後は、すべてコードからタブページとTextBoxコントロールを追加していきます。
テキストファイルを読み込む処理
ここからは、コードでテキストファイルを読み込み、タブページとTextBoxコントロールを作成してファイルの中身を表示する処理を組み立てます。この処理は、ButtonコントロールのClickイベントハンドラで行います。
「ファイルを開く」ダイアログボックスの表示
まず、「ファイルを開く」ダイアログボックスを表示し、読み込むテキストファイル名を取得します。
ここで、WindowsフォームでもおなじみのWin32APIのOpenFileDialogクラスを使用します。コンストラクタでオブジェクト化し、ShowDialogメソッドを実行すると、「ファイルを開く」ダイアログボックスが表示されます。ユーザーがファイルを選ぶと、OpenFileDialogクラスのFileNameプロパティに、選択したファイル名をドライブ名からのフルパスで格納します。また、SafeFileNameプロパティにはファイル名のみを格納するため、それぞれの値を変数に格納しておきます。
Imports C1.WPF Imports System.IO Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) ' ファイルの読み込み Dim fname As String = "" Dim shortfname As String = "" Dim dlg As New Microsoft.Win32.OpenFileDialog() dlg.FileName = "*.txt" ' Default file name dlg.DefaultExt = ".txt" ' Default file extension dlg.Filter = "テキストファイル (.txt)|*.txt" ' Filter files by extension ' ダイアログの表示 Dim result? As Boolean = dlg.ShowDialog() If result = True Then ' Open document fname = dlg.FileName shortfname = dlg.SafeFileName
using System.IO; using C1.WPF; private void button1_Click(object sender, RoutedEventArgs e) { // ファイルの読み込み string fname = ""; string shortfname = ""; Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); dlg.FileName = "*.txt"; // Default file name dlg.DefaultExt = ".txt"; // Default file extension dlg.Filter = "テキストファイル (.txt)|*.txt"; // Filter files by extension // ダイアログの表示 Nullable<bool> result = dlg.ShowDialog(); if (result == true) { fname = dlg.FileName; shortfname = dlg.SafeFileName;
タブページとTextBoxコントロールの追加処理
ユーザーが選択したファイル名を取得したら、タブページ「TabItem」オブジェクトを作成し、C1TabControlコントロールに追加するとともに、Headerプロパティに開いたファイル名を設定します。
また、TextBoxコントロールを作成し、TabItemオブジェクトのContentプロパティに設定します。これで、タブページにTextBoxコントロールが組み込まれます。このとき、TextBoxコントロールでは文字列の折り返しを設定し、垂直方向のスクロールバーを設定しておきます。
そして、FileクラスのReadAllTextメソッドでファイルの中身をすべて取り出し、TextBoxコントロールのTextプロパティに設定して表示します。
' タブページとTextBoxの追加 'タブを作成し、コンテンツを追加します Dim TabItem As New C1TabItem() c1TabControl1.Items.Add(TabItem) TabItem.Header = shortfname Dim tbox1 As TextBox = New TextBox() tbox1.TextWrapping = TextWrapping.WrapWithOverflow tbox1.VerticalScrollBarVisibility = ScrollBarVisibility.Auto TabItem.Content = tbox1 tbox1.Text = File.ReadAllText(fname, Text.Encoding.Default) End If End Sub
// タブページとTextBoxの追加 C1TabItem tabitem = new C1TabItem(); c1TabControl1.Items.Add(tabitem); tabitem.Header = shortfname; TextBox tbox1 = new TextBox(); tbox1.TextWrapping = TextWrapping.WrapWithOverflow; tbox1.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; tabitem.Content = tbox1; tbox1.Text = File.ReadAllText(fname, Encoding.Default); } }