2009-05-03 23 views
1

私は文字列[] arrを持っています。 arr [0]がテキストボックスに行くとボタンをクリックすると好きになります。もう一度ボタンをクリックすると、arr [1]がテキストボックスに移動します。どのようにボタンの各クリックで配列の次の要素を送ることができますか?

私はそれがいくつかのカウンターを使用して行われ、クリックごとにインクリメントすることを知っていますが、構文とちょうど混同しています。ヘルプは高く評価されます。ここで

答えて

1

はサンプルです:

int _Counter = 0; 
string[] arr = new string[4] {"1", "2", "3", "4"}; 

private void buttonClick(Object sender, EventArgs e) 
{ 
    textbox.Text = arr[_Counter]; 
    _Counter++; 
    if (_Counter == arr.Length) {_Counter = 0;} 
} 

あなたはASP.NETアプリケーションでこれを使用している場合は、ViewStateの、セッションやクッキーに_counterを保存する必要があります。

1
if(Session["Counter"] == null) 
    Session["Counter"] = 0; 
string[] arr = new string[4] {"A", "B", "C", "D"}; 
private void button1_Click(Object sender, EventArgs e) 
{   
    textbox1.Text = arr[int.parse(Session["Counter"])]; 
    Session["Counter"]=int.parse(Session["Counter"])+1; 
    if (int.parse(Session["Counter"]) == arr.Length) 
    { 
     Session["Counter"]= 0; 
    } 
} 
+0

あなたは目的を破るごとにセッションクッキーを0に設定します。私はそれが間違いだと確信しています;) –

+0

私はそれを更新し、私とうまくいっています – Ahmy

+0

この場合、SessionではなくViewStateに値を格納します。もちろん、値リセットについての@ Deviantのポイントは有効です。 – Cerebrus

0

すべてに1つのライナーがあります。 ;)

int _counter = 0; 
string[] _values = {"1", "2", "3", "4"}; 

private void buttonClick(Object sender, EventArgs e)> { 
    TheLittleTextbox.Text = _values[_counter++ % _values.Length]; 
} 

(注:カウンタがリセットされていないとして、それはあなたがマウスの大きな山を消耗しているだろうと(約のために昼と夜必死クリックし、しかし... 20億回クリックした後、オーバーフローします20年)は、十分に安全だと考えています。)

関連する問題