2重クリックの防止
GcButtonコントロールには、クリックイベントの処理中に誤ってもう一度ボタンをクリックしてしまった場合などに、イベントを2重に発生させないようにするPreventMultipleClickプロパティを搭載しています。
PreventMultipleClickプロパティをTrueに設定することでイベント発生中にボタンが押下されてもClickイベントは発生しません。
たとえばボタンクリックで課金処理を行う場合などに、誤ってボタンが複数回クリックされることを防ぐことができます。
以下の手順で動作を確認できます。
PreventMultipleClickプロパティをTrueに設定することでイベント発生中にボタンが押下されてもClickイベントは発生しません。
' 2重クリックを防止します。 GcButton1.PreventMultipleClick = True
// 2重クリックを防止します。 gcButton1.PreventMultipleClick = true;
以下の手順で動作を確認できます。
- 新規フォームにGcButtonコントロール、標準CheckBox、標準ProgressBar、標準Labelを配置します。
- 以下のサンプルコードを実装します。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load GcButton1.PreventMultipleClick = False End Sub Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged GcButton1.PreventMultipleClick = CheckBox1.Checked End Sub Private Sub GcButton1_Click(sender As Object, e As EventArgs) Handles GcButton1.Click Label1.Text = "" ProgressBar1.Maximum = 1000 For i As Integer = 0 To 999 System.Threading.Thread.Sleep(1) ProgressBar1.Value = i + 1 ProgressBar1.Value = i Next ProgressBar1.Maximum -= 1 Label1.Text = "処理完了" End Sub
private void Form1_Load(object sender, EventArgs e) { gcButton1.PreventMultipleClick = false; } private void checkBox1_CheckedChanged(object sender, EventArgs e) { gcButton1.PreventMultipleClick = checkBox1.Checked; } private void gcButton1_Click(object sender, EventArgs e) { label1.Text = ""; progressBar1.Maximum = 1000; for (int i = 0; i < 1000; i++) { System.Threading.Thread.Sleep(2); progressBar1.Value = i + 1; progressBar1.Value = i; } progressBar1.Maximum--; label1.Text = "処理完了"; }
- プロジェクトを実行します。
- ChecckBoxにチェックがないことを確認してGcButtonコントロールを押下します。
- プログレスバーの動作中に再度GcButtonコントロールを押下します。
→プログレスバーが溜まると同時に再度GcButtonコントロールのクリックイベントが発生します。
- CheckBoxをチェックしてGcButtonコントロールを押下します。
- プログレスバーの動作中に再度GcButtonコントロールを押下します。
→プログレスバーの動作中にGcButtonコントロールを押下してもクリックイベントは発生しません。