2017-12-21 19 views
0

私はC1Editor用のツールストリップボタンを作成するクラスを持っており、コマンドが組み込まれているので問題なく動作します。このクラスを使用してツールストリップボタンを作成するフォームは約5つあります。私はカスタムボタンを追加していますが、これにはクリックイベントが必要です。これは私が紛失した場所です。私はあなたの助け団体が必要です。クラスコードは以下の通りです:プログラムによるツールストリップボタンの追加とクリックイベントの追加

私は、次のビット削除した場合
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"); 
    } 
} 

: 'のonClick:EventHandler.CreateDelegate( "プッシュ")'、それは完璧に動作します。どのようにすれば、ボタンをさまざまなフォームでクリック可能にし、それぞれ独自のクリックを実装することができますか。

答えて

1

ここでは、標準のToolStripでどのように行うことができるのかWPFスタイルのサンプルを示しますが、これも同様に機能します。このコードは新しいコントロールを作成しています。つまり、ボタンが1つ追加された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; } 
} 

を使用してClickイベントのためのハンドラを提供する機会を与えてBtnClickCommandプロパティを公開します(コントロール名と仮定するとcustomToolstrip1です):

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

ちょっと@Bainn、あなたのためにこの仕事をしましたか? –

関連する問題