문제

무엇보다도 ToolStripcomBobox 및 ToolStripbutton이 포함 된 공구 스트립이 있습니다. 두 사람 모두 컨텍스트 멘토리프를 추가하고 싶지만 ToolStrip 또는 다른 내용에 직접 액세스 할 수 없으므로 공구 스트립의 컨텍스트 메뉴를 설정할 수는 없습니다.

ToolStripcomBobox의 ContextMenustrip 설정은 쉽습니다.

myToolStripComboBox.ComboBox.ContextMenuStrip = myContextMenu;

그러나 ToolStripbutton에는 명백한 동등한 것이 없습니다. ToolStripbutton에 컨텍스트 멘스 트립을 추가하려면 어떻게합니까?

도움이 되었습니까?

해결책

Jeff Yates가 제안한 것은 작동해야합니다.

그러나 또 다른 대안은 자신만의 파생 클래스 (MyToolStripbutton, MyToolStriptextBox ... 등)를 만드는 것입니다. 이러한 항목은 디자인 시간에 설정할 수있는 컨텍스트 Menustrip 속성을 제공하고 파생 클래스가 올바른 마우스를 감지하거나 다른 이벤트가 무엇이든간에합니다. 컨텍스트 메뉴의 표시를 트리거하십시오.

이것은 관심있는 해당 항목에만 필요한 지식을 오프로드합니다.

아래는 ToolStriptextBox를 항목으로 사용하는 예 중 하나입니다.

public class MyTextBox : ToolStripTextBox
{
    ContextMenuStrip _contextMenuStrip;

    public ContextMenuStrip ContextMenuStrip
    {
        get { return _contextMenuStrip; }
        set { _contextMenuStrip = value; }
    }

    protected override void OnMouseDown(MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            if (_contextMenuStrip !=null)
                _contextMenuStrip.Show(Parent.PointToScreen(e.Location));
        }
    }
}

다른 팁

컨텍스트 메뉴를 도구 스트립으로 설정 한 다음 컨텍스트 메뉴 또는 관련 이벤트의 팝업을 처리하고 마우스가 끝나는 버튼을 누르기 위해 툴 스트립의 컨텍스트 메뉴와 포함 해야하는 내용을 결정해야합니다.

ToolStripcomBobox에는 "System.Windows.forms.combobox"컨트롤이 포함되어 있지만 "ToolStripButton"에는 "System.Windows.Forms.control"이 포함되어 있지 않기 때문입니다. 버튼은 ToolStip에 의해 유지됩니다.

ToolStip에서 ContextMenu를 사용하거나 ToolStripbutton 항목에 드롭 다운을 추가 할 수 있습니다.

좋은 질문. 부모에게 접근 할 수 있습니다. toolstrip (myToolStripButton.Parent 또는 비슷한 것) 컨텍스트 메누를 첨부하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top