ToolStripComboBox에서 마우스 스크롤을 사용하지 않으려 고합니다. 마우스 휠 이벤트를 catch 할 수 있다고 생각했지만 ComboBox에서 이벤트를 사용할 수있는 반면 ToolStripComboBox 대신 사용할 수는 없습니다. 어떤 아이디어?ToolStripComboBox에서 마우스 스크롤을 방지하는 방법은 무엇입니까?
2
A
답변
1
ToolStripComboBox
은 ComboBox
property이라는 이름으로 ComboBox
컨트롤을 유용하게 공개합니다. 이를 통해 ToolStripComboBox
에 래핑되지 않은 속성, 메서드 및 이벤트에 액세스 할 수 있습니다.
그리고 표준 ComboBox
컨트롤은 콤보 상자에 포커스가있을 때 마우스 휠을 스크롤 할 때마다 발생하는 MouseWheel
event을 노출합니다. 이 두 가지를 퍼팅
, 우리는 ToolStripComboBox
컨트롤의 내부 ComboBox
컨트롤의 MouseWheel
이벤트에 대한 처리기를 추가하고 기본 동작을 재정의 할 수 있습니다.
그래서, 당신은 ToolStrip
과 ToolStripComboBox
을 포함하는 형태를 가정하고, 다음과 같은 코드를 사용할 수 있습니다
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Attach a handler for the MouseWheel event
ToolStripComboBox1.ComboBox.MouseWheel += new MouseEventHandler(ToolStripComboBox_MouseWheel);
}
private void ToolStripComboBox_MouseWheel(object sender, MouseEventArgs e)
{
//Cast the MouseEventArgs to HandledMouseEventArgs
HandledMouseEventArgs mwe = (HandledMouseEventArgs)e;
//Indicate that this event was handled
//(prevents the event from being sent to its parent control)
mwe.Handled = true;
}
}
또는, 물론, 당신은 항상 기존 ToolStripComboBox
컨트롤을 서브 클래스 수 있으며, 위에 표시된 것과 같은 방식으로 행동을 재정의하십시오.
0
코디 그레이 (Cody Grey)가 제안한 것 외에도 콤보 박스를 떨어 뜨리면 휠 스콜 링이 작동하기를 원할 수도 있습니다.
public class MyToolStripComboBox : ToolStripComboBox
{
public MyToolStripComboBox()
{
this.ComboBox.MouseWheel += new MouseEventHandler(ComboBox_MouseWheel);
}
void ComboBox_MouseWheel(object sender, MouseEventArgs e)
{
if (!this.ComboBox.DroppedDown)
((HandledMouseEventArgs)e).Handled = true;
}
}
스크롤이 선택을 변경하지 않는 휠 콤보 떨어졌다, 그래서 같이
관련 문제
- 1. 마우스를 올려 놓은 요소 밖에서 마우스 스크롤을 방지하는 방법은 무엇입니까?
- 2. 오페라가 오버플로가있는 페이지 스크롤을 방지하는 방법 : 숨김?
- 3. JScrollPane 헤더에서 마우스 휠의 스크롤을 해제하는 방법은 무엇입니까?
- 4. 스크롤을 구현하는 방법은 무엇입니까?
- 5. ListBox.SelectedIndexChanged 이벤트를 방지하는 방법은 무엇입니까?
- 6. UILabel 스크롤을 중지하는 방법은 무엇입니까?
- 7. 자동 스크롤을 수행하는 방법은 무엇입니까?
- 8. JQuery로 연속 스크롤을 만드는 방법은 무엇입니까?
- 9. ScrollViewer에서 스크롤을 잠그시겠습니까?
- 10. swf 파일에서 마우스 휠 스크롤을 비활성화 하시겠습니까?
- 11. GUI 차단을 방지하는 방법은 무엇입니까?
- 12. iframe로드 이벤트를 방지하는 방법은 무엇입니까?
- 13. HTTP 스푸핑을 방지하는 방법은 무엇입니까?
- 14. 깨진 파이프를 방지하는 방법은 무엇입니까?
- 15. DataGridView에서 정렬을 방지하는 방법은 무엇입니까?
- 16. jQuery를 사용하여 무한 스크롤을 만드는 방법은 무엇입니까?
- 17. UIWebView 스크롤을 부드럽게 만드는 방법은 무엇입니까?
- 18. 문서 본문 스크롤을 비활성화하는 방법은 무엇입니까?
- 19. IE6에서 JQGrid 스크롤을 올바르게 작성하는 방법은 무엇입니까?
- 20. 프로그래밍 방식으로 가로 스크롤을 중지하는 방법은 무엇입니까?
- 21. 두 목록 상자의 스크롤을 동기화하는 방법은 무엇입니까?
- 22. NSScrollView와 WebView의 스크롤을 동기화하는 방법은 무엇입니까?
- 23. jQuery에서 가로 스크롤을 감지하는 방법은 무엇입니까?
- 24. DataGridView에서 자동 스크롤을 구현하는 방법은 무엇입니까?
- 25. UIScrollView에서 손가락을 떼면 스크롤을 멈추는 방법은 무엇입니까?
- 26. Android에서 가로 스크롤을 사용 설정하는 방법은 무엇입니까?
- 27. UITextView에서 가로 스크롤을 적용하는 방법은 무엇입니까?
- 28. 스크롤을 사용하여 html 요소를 이동하는 방법은 무엇입니까?
- 29. 데이터 그리드 자동 스크롤을 만드는 방법은 무엇입니까?
- 30. UIScrollView의 UIButtons가 스크롤을 멈추고 수정하는 방법은 무엇입니까?
너무 감사합니다 기대 작품 : 그냥 마우스 휠 핸들에 DroppedDown 상태를 프라하, 단! 완벽하게 작동해야합니다. – raz3r
@ raz3r : 환영합니다. 내가 도울 수있어서 기쁩니다. 이것은 매우 좋은 질문이며, 빠른 Google 검색으로 답이 나오지 않습니다. –
다시 한 번 감사드립니다. – raz3r