2017-06-06 19 views
0

Firstoff私はC#プログラミングの初心者です。私の問題は、テキストボックスとその中にボタンがあるウィンドウがあることです。私が達成しようとしているのは、テキストボックスにテキストを書き込むことです。ボタンをクリックすると、テキストがukony.txtファイルに保存されます。 。しかし、コードを使用して、ボタンをクリックしても何も起こりません。ストリーム・ライターを使用してTextBoxテキストをテキスト・ファイルに保存する方法

public partial class Window1 : Window { 
    public Window1() { 
     InitializeComponent(); 

    } 

    private void button_Click(object sender, RoutedEventArgs e) 
     { 
     string writerfile = @"D:\Games\ukony.txt"; 
     Window1 a = new Window1(); 
     using (StreamWriter writer = new StreamWriter(writerfile)) 
      { 
      writer.WriteLine(a.textBlock.Text); 
      writer.WriteLine(a.textBlock1.Text); 
      } 
     } 
    } 
+3

空の 'TextBox'で「新しい」Windowsを作っているので、' Window'の新しいインスタンスを作成しないでください。 'writer.WriteLine(this.textBlock.Text);' – Nino

+0

Cases:01)Window1は、テキストボックステキストが表示されるボタンクリックイベントで初期化されます。 02)イベントがバインドされていない可能性があります –

+0

[StreamWriterを使用してファイルに行を追加](https://stackoverflow.com/questions/7306214/append-lines-to-a-) –

答えて

0

作業しない理由は、Window1クラスの新しく作成されたインスタンスです。これはあなたが実際に見ているUIとはまったく異なります。だから、直接あなたがStreamWriterを使用したいのはなぜテキスト

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    string writerfile = @"D:\Games\ukony.txt"; 
    using (StreamWriter writer = new StreamWriter(writerfile)) 
    { 
     writer.WriteLine(textBlock.Text); 
     writer.WriteLine(textBlock1.Text); 
    } 
} 
0

新しいウィンドウのインスタンスを使用しないでください。現在のものを使用してください。この行で:詳細に

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    string writerfile = @"D:\Games\ukony.txt"; 

    using (StreamWriter writer = new StreamWriter(writerfile)) 
    { 
     writer.WriteLine(this.textBlock.Text); 
     writer.WriteLine(this.textBlock1.Text); 
    } 
} 

問題:現在のインスタンスのテキストブロックにアクセスするには、thisキーワードを使用する必要があります

Window1 a = new Window1(); 

あなたは空のコントロールを使用して新しいウィンドウを作成します。これらは画面に表示されているものと同じではなく、おそらく何かを入力したものと同じです。

0

へのアクセスにTextBox名を使用して、その場所でインスタンスを作成する必要はありませんか?これはもっと簡単だと思います。

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    string writerfile = @"D:\Games\ukony.txt"; 

    System.IO.File.WriteAllText(writerFile, this.textBlock.Text); 
    System.IO.File.AppendAllText(writerFile, this.textBlock1.Text); 
}