2017-12-22 2 views
-2

私は3つのボタンがあります。 prev、next、addがあります。私は6行のテキストファイルを持っています。 フォームが読み込まれると、3行のテキストが上に表示され、次のボタンをクリックすると他の3行が表示されます。しかし、私はそれを現われる方法を知らない。 これは、私はそれだけで1次のボタンで別の次の行を表示したい私の次のボタンのコードデータベースとリストボックスなしで次のデータと前のデータを表示するにはどうすればいいですか?

private void next_Click(object sender, EventArgs e) 
{ 
    string[] baca; 
    baca = System.IO.File.ReadAllLines(@path.Text);  
    nama.Text = baca[3]; 
    npm.Text = baca[4]; 
    alamat.Text = baca[5]; 
} 

です。

+1

これはwinformsですか? WPF? Webフォーム? – Amy

+2

データ* once *を読み、フォームレベルのvarを使用して何を表示するかを指定します。 – Plutonix

+0

それはWindowsフォームです –

答えて

0

ボタンをクリックしたときにこの変数を参照として使用できるように、現在の行を変数に格納する必要があります。

固定インデックスを設定する代わりに、以下のコードをvarに設定します。 Ps:Web Plataformストレージを使用している場合、現在の項目を非表示のフィールドに格納します。

private int i = 0; // or in hidden field 

    private void next_Click(object sender, EventArgs e) 
    { 

     string[] baca; 
     baca = System.IO.File.ReadAllLines(@path.Text); 

     nama.Text = baca[i]; 
     npm.Text = baca[i+1]; 
     alamat.Text = baca[i+2]; 

    } 
+1

しかし、インデックスをインクリメントしない場合、次のクリックは何度も同じことをやり直すでしょう – Steve

0

答えはすでに@Plutonixで述べられている、と私は引用「一度データを読み込み、表示するためにどのような指標にフォームレベルのVARを使用しています。」

private void next_Click(object sender, EventArgs e) 
{ 
    var baca = System.IO.File.ReadAllLines(@path.Text).ToList(); 
    int firstIndex = 1 + baca.FindIndex(nama.Text);  
    nama.Text = baca[firstIndex]; 
    npm.Text = baca[firstIndex + 1]; 
    alamat.Text = baca[firstIndex + 2]; 
} 

は覚えておいてください

が、これが最善の方法ではなく、重複がある場合には動作しません。

int firstIndex = 0; 
var baca = System.IO.File.ReadAllLines(@path.Text).ToList(); 
private void next_Click(object sender, EventArgs e) 
{ 
    firstIndex++; 
    nama.Text = baca[firstIndex]; 
    npm.Text = baca[firstIndex + 1]; 
    alamat.Text = baca[firstIndex + 2]; 
} 

しかし、あなたには、いくつかの理由のためのフォームレベルの変数をしたくない場合は、これは動作します。

+0

エラーbaca.FindIndex(nama.Text) –

+0

どのようなエラーがありますか?その方法にはリストが必要です。 –

関連する問題