Bir ComboBox açılır menüsünün (veya içerik menüleri de dahil olmak üzere, bu konuyla ilgili başka bir açılır kapanma) davranışını, odaklanamayan bir şeyde bile başka bir yere tıkladığınızda açılır kapanır kapanmaya çalışıyorum.Bir ComboBox, düşürüldüğünde fareyi nasıl yakalar?
MouseCaptureChanged, LostFocus ve Leave gibi etkinliklere abone olmayı denedim. Bir açılır menü gibi davranan özel bir UserControl var ve sadece kullanıcı başka bir yere tıkladığında kapatmak istiyorum.
Bu, birçok denetimde yapılan bir şey gibi görünüyor, bu yüzden bunu yapmanın basit bir yolu olmasaydı şaşırırdım.
Şimdiye kadar bunu yapmak için gelebilecek aşırı karmaşık yöntemler, pinvoke ve SetCapture() işlevini kullanıyor ya da bir MessageFilter oluşturuyor. Bunlar tek seçenek ise hangisinin daha iyi olduğundan emin değilim.
kontrolü gibi bir DropDown uygulamak için kolay bir yol, bir ToolStripControlHost ve ToolStripDropDown kullanmaktır. Bir ComboBox gibi çalışır. Bkz. [Liste kutularını görüntülerken açılan kutucuklar, formdaki herhangi bir yere fare olaylarını kestirmek nasıl olur?] (Http://stackoverflow.com/a/8611382/719186) – LarsTech
ToolStripControlHost'u deniyorum. Açılır pencerenin üst kısmındaki çirkin bir kenarlıktan veya açılır pencereyi açtığınız zaman ComboBox'ın titremesinden kurtulamam. –
ToolStripContorlHost ve ToolStripDropDown öğesinin dolgularını 0'a ayarladığınızdan emin olun. Kontrolünüzde titremek farklı bir sorundur - özel bir açılır menü ile bir ComboBox kullanmaya mı çalışıyorsunuz? – LarsTech