0

ウィンドウフォームアプリケーションを使用して、単純な「Forループ」を設計しました。これは一度だけクリック可能であり、ボタンをクリックしても同じ情報が繰り返されないようにしたいと思います。どうすればそれができますか?ありがとうここに私のコードがあります:

        int count;

        for (count = 0; count < 5; count = count + 1)
        {
            listBox1.Items.Add("This is count: " + count);
        }
        const string textEnd = "Done!!!";
        {
            listBox1.Items.Add(textEnd);
        }

====追加情報===私は今この方法でそれを作りました。これは1回だけクリックしますが、ボタンは引き続き有効です。これは大丈夫だと思います:

        int count;

        for (count = 0; count < 5; count++)
        {
            string newItem = "This is count: " + count; 
            if (listBox1.Items.IndexOf(newItem) < 0) 
            { 
                listBox1.Items.Add(newItem); 
            }
         }

        const string textEnd = "Done!!!";
        if (listBox1.Items.IndexOf(textEnd) <0)
        {
            listBox1.Items.Add(textEnd);
        }
4

6 に答える 6

4
button1.Enabled = false;
于 2009-05-20T08:14:08.590 に答える
1

同じアイテムをリストに複数回追加したくないと思いますか?

それ以外の

{
    listBox1.Items.Add("This is count: " + count);
}

あなたは次のようなものが必要です

{
    string newItem = "This is count: " + count;
    if(listBox1.Items.IndexOf(newItem) < 0)
    {
        listBox1.Items.Add(newItem);
    }
}
于 2009-05-20T08:16:06.493 に答える
0

If it's not too many items, you could always clear the listbox before adding the stuff.

listbox1.Items.Clear();
...your adding code...

But the probably best solution is just to disable the button, like Ian wrote.

于 2009-05-20T09:21:11.357 に答える
0

クリックイベントで、button1.Enabled=falseを追加します

また、ループの後で、button1.Enabled=trueを追加してボタンを再度有効にすることもできます。:)

于 2009-05-20T08:15:42.750 に答える
0

単純な「フラグ」を使用して、ループがすでに実行されているかどうかを判断できます。

グローバル変数を作成します。例:bool HasRun = false;

次に、ループを実行する前にフラグの状態を確認します。たとえば、HasRun==trueの場合

ループを最初に実行するときは、HasRunをtrueに設定します。

最後に、最初の実行時にボタンを無効にすることもできます(例:button1.Enabled = false;

于 2009-05-20T08:16:29.893 に答える
0

最良のものはIanSaidですが、次のコマンドのいずれかを実行してボタンを完全に非表示にすることもできます

button.Hide();

または

button.Visable = false;
于 2009-05-20T09:34:21.877 に答える