Windowsフォームに「ローリング番号」を約10秒間作成したいと考えています。C#ローリング番号Windowsフォーム
私はループで試しましたが、テキストラベルを更新する際にリフレッシュ(フォームがフリーズし、ループが完了したときに更新される)に問題があります。それはあなたのフォームと1つのタイマーの悪い英語^^
Windowsフォームに「ローリング番号」を約10秒間作成したいと考えています。C#ローリング番号Windowsフォーム
私はループで試しましたが、テキストラベルを更新する際にリフレッシュ(フォームがフリーズし、ループが完了したときに更新される)に問題があります。それはあなたのフォームと1つのタイマーの悪い英語^^
ドラッグつのラベルのための
申し訳ありません(コンソール上に作られた)このhttps://youtu.be/Q7JmiCAAqu0のように見えるとき
それはいいだろう。 'InitializeComponent();の後に次のコードを挿入します。説明
const int maximum = 100;
int actual = 0;
timer1.Interval = 100;
timer1.Enabled = true;
timer1.Tick += (sender, args) =>
{
label1.Text = (actual++ % maximum).ToString();
};
:
- ラベルが
- タイマーが操作を実行するために使用されたローリング番号を表示するために使用されている(私たちの場合は100ミリ秒ごとに= 0.1秒)ごとのNミリ秒
- const int maximum = 100; //表示する最大数を定義します
- int実際の値は0です; //は一度に表示している実際の番号を表します
- timer1.Interval = 100; // timer1.Tickが呼び出される間隔(ここでは100ms)
- timer1.Enabled = true; // Tickを呼び出さずにタイマーを有効にする
- timer1.Tick + =(送信者、引数)=> { label1.Text =(実際の++%最大).ToString(); //テキストを次のように設定します。actual + 1 modulo 100 };
EDIT:剰余についての情報:StackOverflowのにhttps://en.wikipedia.org/wiki/Modulo_operation
ありがとうございました。 –
ようこそ。ヘルプセンター(https://stackoverflow.com/help/ –
)を見てください。UIスレッドで単純なループを実行すると、終了するまでプログラム全体がフリーズします。 "ループ"コードを 'BackgroundWorker'に移動するか、' async'/'await'を使ってバックグラウンドスレッド上でコードを実行してみてください。 – Alejandro
System.Windows.Forms.Timerを使用して、次の番号でUIを更新する関数を呼び出すたびにX tickを使用します。ツールボックスから時間を払うことも簡単な解決策になります。 [関連](https://stackoverflow.com/questions/6169288/execute-specified-function-every-x-seconds) –