|
▼タンゴ さん:
こんばんは。おじゃまします。
> 再び25をクリックしても反応してくれません。
> 原因はすでにコンボボックスの行表示が25になっているからだと思うのですが・・・
> 同じ所を続けてクリックは受けつけないという仕様なのでしょうか?
すでに、neptune さんからコメントがありますが、
同じアイテムを再度クリックしても、Clickイベント または Changeイベント
は発生しないようになってるらしいです。
同じアイテムを連続して選択して、Clickイベントが発生するようにするには
リストボックスを使い、ButtonUpイベントで ListIndexを -1 にしておくという
方法がある(ListBoxのばあい、 ListIndexを -1 にしても、選択は解除され
るけれど、どのアイテムを選択したかは リストの選択項目に 枠線が表示され
続けるのでわかる)のですけれど、
ComboBoxですと、ListIndexを -1 にすると、同時にテキスト部の表示が空白
になってしまってうまくないです。
どうしても、連続して同じ項目をクリックできるようにするには、
ComboBoxの _DropButtonClickイベントがリストを表示するために▼をクリック
したときと、選択してリストを閉じるときの2回発生することを利用すると、
ListBoxでの同じアイテムの連続選択と似たような動作を再現できます。
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then
'◆ 処理
MsgBox ComboBox1.Value
End If
End Sub
'◆_DropButtonClick は ListBoxへの<入>時<出>時、計2回発生する
Private Sub ComboBox1_DropButtonClick()
Static flag As Boolean, PrevIndex As Long
If flag Then '<出>のときCheck
With ComboBox1
If .ListIndex > -1 Then
If .ListIndex = PrevIndex Then
.ListIndex = -1
.ListIndex = PrevIndex
End If
End If
PrevIndex = .ListIndex
End With
End If
flag = Not flag
End Sub
(注)ただし、ドロップダウンを押してリストを出したが、
選択を中止して、(なにも選択せずに)テキスト部をクリックした
ときにも、DropDownClickイベントは発生してしまいますので、
実用的な方法ではないかもしれません。
|
|