2014-06-17 1 views
0

드롭 다운이 열릴 때 ComboBox에서 선택한 항목을 마우스 오른쪽 버튼으로 클릭하여 제거하는 방법?드롭 다운이 열려있을 때 마우스 오른쪽 버튼으로 콤보 박스에서 선택한 항목을 제거하는 방법은 무엇입니까?

SelectedIndexChanged 이벤트를 사용할 때 매개 변수로 MouseEventArg이 없다는 것은 어떤 마우스 버튼을 눌렀는지 정의 할 수 없다는 것을 의미합니다.

다른 측면에서 MouseDown 이벤트를 사용하면 SelectedIndexChanged을 감지 할 수 없습니다. 단 하나의 경우 MouseDownButton.Right을 누르면 작동하며 ComboBox을 마우스 오른쪽 버튼으로 클릭하면 열리는 드롭 다운 메뉴가없는 ComboBox을 클릭하면됩니다.

몇 가지 조언이 있으십니까? 내가 지금까지 시도했습니다 무엇

: 나는 항목의 무리와 함께 콤보 상자 설정하고 drop down list했습니다

private void combobox1_MouseUp(object sender, MouseEventArgs e) 
{ 
    if (e.Button == System.Windows.Forms.MouseButtons.Right) 
     MessageBox.Show("mouse up"); 
} 

private void combobox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if ((cmbSearch.SelectedIndex) != (-1)) 
    { 
     combobox1.Items.RemoveAt(cmbSearch.SelectedIndex); 
    } 
} 
+1

표시되는 동안 ComboBox에서 항목을 제거하려고하는 이유는 무엇입니까? 이것은 처음부터 나쁜 생각처럼 보입니다. – DonBoitnott

+0

유스 케이스를 작성할 수 있습니까? 마찬가지로, 사용자가 항목을 선택하고, 여기를 클릭하고, 예상되는 동작 등을합니다. '사실, SelectedIndexChanged 이벤트를 사용할 때 MouseEventArg가 없습니다.'는 정상입니다. 'SelectedIndexChanged'가 combobox의 이벤트이기 때문에'MouseEventArg'는 사용자 활동의 이벤트입니다 –

+0

@ T.S. 나는 이미 유스 케이스를 말했고, 나는 당신이 어떤 제안을 할 수 있다면 그걸 클릭했을 때 선택된 아이템을 제거 할 필요가있다. 내게 알려주기 위해서 .... – tonni

답변

1

.

나는 MouseDown 이벤트 모든 항목을 선택하면이, 무엇을

private void comboBox1_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button != MouseButtons.Right) 
     return; 
    comboBox1.SelectedIndex = -1; 
} 

, 당신이 바로 콤보 상자를 클릭하면,이 항목을 선택한 선택 해제에 핸들러를 추가했습니다.

이제이 변경 사항을 처리하는 방법은 SelectedIndexChanged과 완전히 다릅니다. 희망이 귀하의 질문에 대한 답변.

관련 문제