今押されたくないボタンを無効以外の方法で処理するには?

解決


lily  2005-05-30 21:42:51  No: 122047

あるループ内の一箇所に、そのときにボタンをクリックされたくない(Button_Clickイベントを発生させたくない)処理をしている時間帯があり、
その間だけEnableプロパティをFalseにすると、ループの間に無効、有効を繰り返してボタンがチカチカするので、その間Nameプロパティでコントロール名自体を変えてみたらどうかと試みたのですが、Nameを元に戻す時に当然宣言されてないNameなのでエラーがでてしまいうまくいきませんでした。何か別の解決案はないでしょうか。アドバイスおねがいします。


VBでがりがり書かせて  2005-05-30 21:50:01  No: 122048

ループの間に無効、有効を繰り返して・・・。
なぜ?

そんなことせずに、
ループの始まる前に無効、抜けたら有効でいいんじゃないの?

ユーザは、何回目の点滅の前でボタンを押す!とか判断できるの?


さくら  2005-05-30 21:52:06  No: 122049

ループに入る直前でEnableをFalseではだめなんですか?
どんなループをさせているかわからないとアドバイスが出来ないよ。
後、環境も


lily  2005-05-30 22:09:10  No: 122050

失礼しました。

DO
 処理A(ボタン有効にさせておきたい時間帯)
            |
  処理B(ボタンをクリックされたくない時間帯)
            |
  処理C(ボタンを有効にさせておきたい時間帯)
LOOP

このような感じでLOOPの中に一部分だけボタンを押されたくない場所があります。環境はVB.NETです。


ガッ  2005-05-30 22:09:47  No: 122051

別に「クリックした」から「クリックした処理をする」という風に決まっているわけではないのでは?
→クリックしても処理をしないようにすればいいだけだと思われ。
  →激しくガイシュツ…


さくら  2005-05-30 22:19:57  No: 122052

Option Explicit
Private blnClickOK As Boolean

Private Sub Command1_Click()
  If blnClickOK Then
    処理
  End If
End Sub

Private Sub Form_Load()
  Do
    blnClickOK = True
    処理1
    
    blnClickOK = False
    処理2
  Loop
End Sub
こんな感じにすれば良いのでは?


lily  2005-05-30 22:40:30  No: 122053

ありがとうございました。即解決しました。すごくアホでした。
また実は処理BはTCP Listenerの処理をしており、クライアントからの接続要求が無いと処理Bでずっと停止しており、ずっとフラグが立ったままという新たな問題が起こりましたが、質問のタイトルからまた別の話なので別のスレにしようと思います。回答くださったみなさんありがとうございました。
>VBでがりがり書かせてさん
>さくらさん
>ガッ


lily  2005-05-30 22:40:59  No: 122054

解決チェック忘れです。


ぶぶ  2005-05-30 23:39:42  No: 122055

もう解決されているようなので、余計なことかもしれませんが
ちらちらするのだけが気になるのならば
ボタンをFlameなどに貼り付けて(各々別々に)
Flameの方のenableを切り替えれば、どうかなぁ・・・
とちょっと思いました。


通ってみた  2005-05-31 15:04:04  No: 122056

オレはこうしてる、というムダ話
(基本はさくらさんと同じ)

Private Sub Command1_Click()

  If blnClickOK=False Then Exit Sub '処理抜け

  以下ボタンが押された時の処理

End Sub


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加