C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.92887 の関連記事表示

<< 0 >>
■92887  マウスクリックとホイールを無効化する方法
□投稿者/ yapoo -(2019/11/05(Tue) 17:04:48)

    分類:[.NET 全般] 

    Cursor = Cursors.WaitCursor

    とすることで、マウスカーソルを待機状態に変更することができます。
    この状態の時に、
    マウスでコントロールをクリックやホイールを回しても
    コントロールの内容を変更できなくしたいのですが、
    どのようにすれば良いですか?

    一つ一つコントロール毎に、
    マウスクリックイベントとホイールイベントを書いていくのは
    非常に面倒なので
    一括で書きたいのですが
    どのようにすれば良いでしょうか?
親記事 /過去ログ160より / 関連記事表示
削除チェック/

■92888  Re[1]: マウスクリックとホイールを無効化する方法
□投稿者/ 魔界の仮面弁士 -(2019/11/05(Tue) 17:14:01)
    No92887 (yapoo さん) に返信
    > Cursor = Cursors.WaitCursor

    という事は、WPF や ASP.NET WebForms ではなく、WinForms での開発ですね。
    行末セミコロンも無いので VB かな。


    > マウスでコントロールをクリックやホイールを回しても
    > コントロールの内容を変更できなくしたいのですが、
    > どのようにすれば良いですか?

    マウス、タッチ、スタイラス、キーボード等々、
    すべての入力をブロックしてもよいのなら、
    親フォームまるごと使用不可にしてしまうとか。

    Me.Enabled = False
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92889  Re[2]: マウスクリックとホイールを無効化する方法
□投稿者/ yapoo -(2019/11/05(Tue) 17:22:02)
    ありがとうございます。

    確かにこの方法でもできるのですが、
    ウインドウフォームの外観を変えずに
    マウス(とキーボード)の操作を無効化したいのですが
    このようなことは可能でしょうか?
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92895  Re[3]: マウスクリックとホイールを無効化する方法
□投稿者/ 774RR -(2019/11/06(Wed) 08:28:14)
    > ウインドウフォームの外観を変えずにマウス(とキーボード)の操作を無効化
    すると通常のユーザーは大いに戸惑うと思うのだけど。

    あれ?このアプリ死んでる!しょうがない、タスクマネージャで抹消するか。はお望みの動作?
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92898  Re[3]: マウスクリックとホイールを無効化する方法
□投稿者/ 魔界の仮面弁士 -(2019/11/06(Wed) 10:22:33)
    No92889 (yapoo さん) に返信
    > ウインドウフォームの外観を変えずに
    > マウス(とキーボード)の操作を無効化したいのですが
    > このようなことは可能でしょうか?

    手抜きですが、それっぽい画像に差し替えてしまうのはどうでしょう?


    フォームの階層構成を
     Form1
     ├Panel1
     │├他のコントロール
     │└他のコントロール
     └PictureBox1
    ようにしておいて…。


    普段の状態:
     ・Panel1 は「最背面」「Visible = True」「Dock = Fill」
    ・PictureBox1 は「再前面」「Visible = False」「Dock = Fill」
    ロックする場合:
     ・Graphics.CopyFromScreen で撮影したフォーム画像を PictureBox1.Image に割り当て
     ・Cursors.WaitCursor を適用
     ・コンテナの Visible を反転させ、Panel1.Visible = False、PictureBox1.Visible = True に。
    とする感じで。


    それでも、考えるべき点はいろいろありますが…。

    複数のフォームがあったらその都度処理しなければいけないとか、
    無効化中の画面更新(時計やGIFアニメ等)に対応できないとか、
    AutoScroll なフォームをどうするかとか、
    半透明ウィンドウの場合はどうするのかとか、
    無効化中の親フォームの移動や終了を許可するか否かとか。
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92896  Re[4]: マウスクリックとホイールを無効化する方法
□投稿者/ yapoo -(2019/11/06(Wed) 09:58:27)
    No92895 (774RR さん) に返信
    >>ウインドウフォームの外観を変えずにマウス(とキーボード)の操作を無効化
    > すると通常のユーザーは大いに戸惑うと思うのだけど。
    >
    > あれ?このアプリ死んでる!しょうがない、タスクマネージャで抹消するか。はお望みの動作?
    >

    カーソルを待機状態に変えてあるのでそこは問題ありません。
    Cursor = Cursors.WaitCursor
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92901  Re[1]: マウスクリックとホイールを無効化する方法
□投稿者/ にゃるら -(2019/11/06(Wed) 15:16:49)
    No92887 (yapoo さん) に返信
    > Cursor = Cursors.WaitCursor
    >
    > とすることで、マウスカーソルを待機状態に変更することができます。
    > この状態の時に、
    > マウスでコントロールをクリックやホイールを回しても
    > コントロールの内容を変更できなくしたいのですが、
    > どのようにすれば良いですか?
    >
    > 一つ一つコントロール毎に、
    > マウスクリックイベントとホイールイベントを書いていくのは
    > 非常に面倒なので
    > 一括で書きたいのですが
    > どのようにすれば良いでしょうか?
    >

    SetWindowsHookExでWH_MOUSEを指定するとか?(キーボード以外は試してないのでうまくいくかはわかりませんが)
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92908  Re[1]: マウスクリックとホイールを無効化する方法
□投稿者/ KOZ -(2019/11/07(Thu) 10:44:14)
    2019/11/07(Thu) 10:45:05 編集(投稿者)
    2019/11/07(Thu) 10:44:39 編集(投稿者)

    No92887 (yapoo さん) に返信
    > 一つ一つコントロール毎に、
    > マウスクリックイベントとホイールイベントを書いていくのは
    > 非常に面倒なので
    > 一括で書きたいのですが
    > どのようにすれば良いでしょうか?

    メッセージフィルタを登録してマウスに関するメッセージを無視することができます。


    Private Class MouseMessageFilter
    Implements IMessageFilter

    Const WM_MOUSEFIRST As Integer = &H200
    Const WM_MOUSELAST As Integer = &H20E

    Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) As Boolean _
    Implements IMessageFilter.PreFilterMessage
    Select Case m.Msg
    Case WM_MOUSEFIRST To WM_MOUSELAST
    Return True
    Case Else
    Return False
    End Select
    End Function
    End Class

    Dim mouseFilter As New MouseMessageFilter()

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Application.AddMessageFilter(mouseFilter)
    Me.Cursor = Cursors.WaitCursor
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Application.RemoveMessageFilter(mouseFilter)
    Me.Cursor = Cursors.Default
    End Sub
記事No.92887 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92912  Re[2]: マウスクリックとホイールを無効化する方法
□投稿者/ yapoo -(2019/11/07(Thu) 14:22:37)
    これでした
    素晴らしいです
    うまくいきました
    どうもありがとうございました。
記事No.92887 のレス / END /過去ログ160より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -