36章:チュートリアル35:WPFテキスト ファイルからデータを読み取るの作成

    作成2013.04.05

     ここでは、Windowsフォームアプリケーション用サンプルコードをWPFアプリケーション用コードに変換します。 フォームアプリケーションからWPFアプリケーションへの変化が最近の主流のようです。

  1. 参照元情報
     テキスト ファイルからデータを読み取るは(Visual Basic ガイド ツアー)
    「テキスト ファイルからデータを読み取る」にジャンプする
    「WPF - Windows フォーム用のコントロールを使う」にジャンプする
     作成方法の詳細は上記を参照願います。


  2. フォームアプリケーションからWPFアプリケーションへの変更
     若干の変更でフォームアプリケーションからWPFアプリケーションへの変更ができます。

     完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
      [ WPFテキスト ファイルからデータを読み取る]をダウンロードする。
     解凍すると「36WpfFileTest」フォルダーがあります。
    注(1)「36WpfFileTest」フォルダーの「WpfFileTest.sln」ファイルをダブルクリックすると「Microsoft Visual Basic 2010 Express」が起動します。
    注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(3)「ソリューションエクスプローラ」ウインドウ内のMainWindow.xaml」をダブルクリックすると「デザイン」が表示されます。
    注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
    注(5)「WpfFileTest.sln」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  3. WpfFileTest.slnの実行
    (1)「Microsoft Visual Basic 2010 Express」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)操作画面が表示されます。
    (4)Test実行ボタンを押します。
    (5)オープン・ファイル・ダイアログが表示されます。
    (6)テキストファイルを選択してOKボタンをおします。
    (7)選択ファイルの2行分のテキスト内容がメッセージボックスにされます。OKボタンを押します。
    (8)保存ファイル・ダイアログが表示されます。
    (9)保存場所とファイル名を指定して、保存ボタンを押します。
    (10)クローズボックスでプログラムを終了します。
    (11)保存ファイルにコピーが作成されます。


  4. プロジェクトの構成
    (1)UserControl1.vbの構成
    ・OpenFileDialog1とSaveFileDialog1を配置します。

    (2)XAMLコードの構成
    ・UserControl1を配置します。
    ・Buttonを配置します。

    注(1)OpenFileDialog1とSaveFileDialog1がフォームアプリケーション用のツールとなります。
    注(2)OpenFileDialog、SaveFileDialogの「Filterを(*.txt)|*.txt」に設定します。


  5. XAMLの全コード
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 
        xmlns:self="clr-namespace:WpfFileTest"
        Title="MainWindow" Height="220" Width="282">
        <Grid>
            <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="23,11,0,0" Name="Button1" VerticalAlignment="Top" Width="75" />
            <WindowsFormsHost Visibility="Hidden">
                <self:UserControl1 x:Name="myControl"/>
            </WindowsFormsHost> 
        </Grid>
    </Window>
    


  6. XAMLのポイント
    (1)<Window>階層1:クラス:以下の記載が特別です。
     xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
     上記の記載はUserControlを使用するための記載です。
      xmlns:self="clr-namespace:WpfFileTest"
     上記の記載はWpfFileTestソリューションを使用するための記載です。
    (2) <WindowsFormsHost x:Name="wfHost" Grid.Row="0">
    <self:UserControl1 x:Name="myControl" />
    </WindowsFormsHost>
     上記の記載でUserControl1の使用条件を設定します。名前は"myControl" となります。
    (3)Grid機能を使用してButtonを配置します。


  7. Class MainWindowクラスの全コード
    Class MainWindow
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If myControl.OpenFileDialog1.ShowDialog() = Forms.DialogResult.OK Then
                Dim sr As System.IO.StreamReader = My.Computer.FileSystem.OpenTextFileReader(myControl.OpenFileDialog1.FileName)
                Dim FirstLine As String = sr.ReadLine() & vbCrLf & sr.ReadLine()
                MsgBox(FirstLine)
                Dim reader As String = My.Computer.FileSystem.ReadAllText(myControl.OpenFileDialog1.FileName)
                If myControl.SaveFileDialog1.ShowDialog() = Forms.DialogResult.OK Then
                    My.Computer.FileSystem.WriteAllText(myControl.SaveFileDialog1.FileName, reader, append:=False)
                End If
            End If
        End Sub
    End Class
    


  8. コードの解説
    (1)myControl.OpenFileDialog1.ShowDialog()でファイル名を取得します。
    (2)myControl.SaveFileDialog1.ShowDialog()で保存場所とファイル名を設定します。


  9. Public Class UserControl1クラスのコード
     Public Class UserControl1クラスのコードはありません。


    感想:
    (1)ファイル操作に関して、Windowsフォームアプリケーション用サンプルコードをWPFアプリケーション用コードへの変換は非常に簡単です。






37章:チュートリアル36:WPFタブ区切りのテキスト ファイルを読み取るの作成に行く。

トップページに戻る。