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

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

C# と VB.NET の入門サイト

Re[3]: コンボボックで最初に▼をクリックした時の動作について


(過去ログ 134 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■79033 / inTopicNo.1)  コンボボックで最初に▼をクリックした時の動作について
  
□投稿者/ Hiro (1回)-(2016/03/03(Thu) 11:31:05)

分類:[VB.NET/VB2005 以降] 


VB2010で開発しています。

[質問]
コンボボックで最初に▼をクリックした時、リストが開いてすぐ閉じてしまう現象を回避したいと考えています。


[現状]
コンボボックのDropDownstyleをDropDownListにし、EnterイベントでDroppedDown = Trueにしています。
TABキーでのフォーカス移動では正しくリストが開きます。
但し、最初に▼をクリックした時、リストが開いてすぐ閉じてしまいます。
二回目以降▼をクリックした時は、動作は正常にリストが開きます。


MouseClickイベントでもやってみたのですが、リストが2回開く動作をしてしまいます。

Private Sub ComboBox1_Enter(sender As Object, e As System.EventArgs) Handles ComboBox1.Enter
If Not ComboBox1.DroppedDown Then
ComboBox1.DroppedDown = True
End If
End Sub

Private Sub ComboBox1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ComboBox1.MouseClick
If Not ComboBox1.DroppedDown Then
ComboBox1.DroppedDown = True
End If
End Sub


よろしくお願いします。


引用返信 編集キー/
■79035 / inTopicNo.2)  Re[1]: コンボボックで最初に▼をクリックした時の動作について
□投稿者/ shu (824回)-(2016/03/03(Thu) 12:18:39)
No79033 (Hiro さん) に返信

これでどうでしょう?
    Private Sub ComboBox1_Enter(sender As System.Object, e As System.EventArgs) Handles ComboBox1.Enter
        If Control.MouseButtons = Windows.Forms.MouseButtons.None Then
            ComboBox1.DroppedDown = True
        End If
    End Sub

引用返信 編集キー/
■79036 / inTopicNo.3)  Re[2]: コンボボックで最初に▼をクリックした時の動作について
□投稿者/ Hiro (2回)-(2016/03/03(Thu) 12:28:00)
shuさん、ありがとうございます。

何日も悩んだのに、簡単に解決できました。

解決済み
引用返信 編集キー/
■79037 / inTopicNo.4)  Re[1]: コンボボックで最初に▼をクリックした時の動作について
□投稿者/ WebSurfer (852回)-(2016/03/03(Thu) 12:30:47)
No79033 (Hiro さん) に返信

作っているのは Windows Forms アプリですよね?

> EnterイベントでDroppedDown = Trueにしています。

そうする理由は何でしょう?

イベントでそのようなことをしなくても、普通にデフォルトで作って ▼ マーク
をクリックすればドロップダウンされるはずで、

> コンボボックで最初に▼をクリックした時、リストが開いてすぐ閉じてしまう現象を回避したいと考えています。

という現象は自分が試した限り起こらなかったのですが?

上記で「普通にデフォルトで作って」というのは以下のスレッドの記事の No78864
で書いたようなコードです。

http://bbs.wankuma.com/index.cgi?mode=al2&namber=78847

DropDownStyle は ComboBoxStyle.DropDownList に設定しました。
引用返信 編集キー/
■79038 / inTopicNo.5)  Re[1]: コンボボックで最初に▼をクリックした時の動作について
□投稿者/ 魔界の仮面弁士 (658回)-(2016/03/03(Thu) 12:33:40)
No79033 (Hiro さん) に返信
> コンボボックで最初に▼をクリックした時、リストが開いてすぐ閉じてしまう現象を回避したいと考えています。

これでどうでしょう。あまりチェックしていないですけど。

Public Class Form1
  Private Sub DropDown(ByVal sender As Object, ByVal e As EventArgs)
    RemoveHandler Application.Idle, AddressOf DropDown
    ComboBox1.DroppedDown = True
  End Sub

  Private Sub ComboBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Enter
    AddHandler Application.Idle, AddressOf DropDown
  End Sub
End Class
引用返信 編集キー/
■79039 / inTopicNo.6)  Re[2]: コンボボックで最初に▼をクリックした時の動作について
□投稿者/ 魔界の仮面弁士 (659回)-(2016/03/03(Thu) 12:37:19)
No79038 (魔界の仮面弁士) に追記
> これでどうでしょう。あまりチェックしていないですけど。

おぉぅ、既に解決済みだったようなので、解決マーク付けなおしておきます。


マウスボタンを押しながら Tab キー等で Enter されたときには
No79035 のコードと No79038 のコードで異なる動作になりますね。
解決済み
引用返信 編集キー/
■79062 / inTopicNo.7)  Re[3]: コンボボックで最初に▼をクリックした時の動作について
□投稿者/ GARO (1回)-(2016/03/04(Fri) 18:01:28)
2016/03/04(Fri) 18:02:50 編集(投稿者)

No79037 (WebSurfer さん) に返信
> ■No79033 (Hiro さん) に返信
>
> 作っているのは Windows Forms アプリですよね?
>
>>EnterイベントでDroppedDown = Trueにしています。
>
> そうする理由は何でしょう?
>

タブキーでコントロール遷移した時に自動的にドロップダウンを開きたいからでしょ。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -