2017-12-21 9 views
0

나는 C1Editor에 대한 도구 모음 단추를 만드는 클래스가 있으며 명령이 빌드되어 있기 때문에 잘 작동합니다. 이 클래스를 사용하여 툴팁 버튼을 만드는 약 다섯 개의 폼이 있습니다. 맞춤 검색 버튼을 추가하고 있는데 클릭 이벤트가 필요합니다. 여기는 내가 잃어버린 부분입니다. 나는 네 도움이 필요해. 클래스 코드는 다음과 같습니다 :프로그래밍 방식으로 도구 상자 단추를 추가하고 클릭 이벤트를 첨부하십시오.

나는 다음과 같은 비트 제거하면
public class AlrFrontEndToolStrip : C1EditorToolStripBase 
{ 
    protected override void OnInitialize() 
    { 
     base.OnInitialize(); 
     AddButton(CommandButton.Copy); 
     AddButton(CommandButton.Paste); 
     Items.Add(new ToolStripSeparator()); 
     AddButton(CommandButton.SelectAll); 
     AddButton(CommandButton.Find); 
     Items.Add(new ToolStripSeparator()); 
     AddButton(CommandButton.Print); 
     Items.Add(new ToolStripSeparator()); 
     Items.Add(new ToolStripButton().Text = "View Judgment", Properties.Resources.Find_VS, onClick: EventHandler.CreateDelegate("Push"); 
    } 
} 

: '온 클릭 : EventHandler.CreateDelegate ("밀어")', 그것은 완벽하게 작동합니다. 그렇다면 어떻게 다양한 형태로 버튼을 클릭 할 수있게 할 수 있으며 각각은 자신의 클릭을 구현할 수 있습니다.

답변

1

다음은 표준 ToolStrip에서 수행 할 수있는 방법을 보여주는 WPF 스타일의 샘플이지만, 동일한 방법으로도 사용할 수 있습니다. 이 코드는 하나의 버튼이 추가 된 ToolStrip 인 새로운 컨트롤을 만듭니다. 그것은 다음과 같이 당신이 그것을 사용하는 형태로 그런 당신에게 Command

[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)] 
[System.Runtime.InteropServices.ComVisible(true)] 
public class CustomToolstrip : ToolStrip 
{ 
    public CustomToolstrip() : base() 
    { 
     InitializeComponent(); 
    } 
    public void InitializeComponent() 
    { 
     var btn = new ToolStripButton() 
     { 
      Text = "Test Button" 
     }; 

     btn.Click += BtnOnClick; 
     Items.Add(btn); 

    } 

    private void BtnOnClick(object sender, EventArgs eventArgs) 
    { 
     if (BtnClickCommand.CanExecute(null)) 
     BtnClickCommand.Execute(null); 
    } 

    public ICommand BtnClickCommand { get; set; } 
} 

를 사용하여 클릭 이벤트에 대한 핸들러를 제공 할 수있는 기회를 제공 BtnClickCommand 속성을 노출 (컨트롤 이름을 가정하는 것은 customToolstrip1입니다) :

public Form1() 
    { 
     InitializeComponent(); 
     customToolstrip1.BtnClickCommand = new RelayCommand<object>(obj => { MessageBox.Show("Button clicked"); }); 
    } 
+0

헤이 @ 바인인, 너를 위해이 일을 했니? –