0

buttonClickメソッドをパラメーターとして関数に渡したい:

buttonClick:

private void iDeactivate_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
 ...
}

働き:

private void AddItemToPopUpMenu(GridViewMenu cMenu, string cItemCaption, EventHandler cClickHandler, Image cItemImage, bool cItemBeginGroup)
{
    DXMenuItem item = new DXMenuItem();
    item.Caption = cItemCaption;
    item.Click += new EventHandler(cClickHandler); //problem there
    item.Image = cItemImage;
    item.BeginGroup = cItemBeginGroup;
    cMenu.Items.Add(item);
}

だから誰かが解決策を提案できますか?

試した:

AddItemToPopUpMenu(cMenu, iDeaActive.Caption, iDeactivate_ItemClick, null, false);

関数パラメータを次のように変更します。

private void AddItemToPopUpMenu(GridViewMenu cMenu, string cItemCaption, EventHandler<ItemClickEventArgs> cClickHandler, Image cItemImage, bool cItemBeginGroup)

しかし、「そこに問題がある」とマークしたコードで間違いを犯します

では、パラメータを変更せずにbuttonClickメソッドを渡すことは可能ですか?

編集:私はいくつかの間違った答えを見ているので、PASSWORDToPopUpMenuが何度も呼び出され、毎回異なるメソッドで呼び出されるため、パラメーターとして渡す必要があると言う必要があります

4

3 に答える 3

3

見た目では、通常のオブジェクトDXMenuItem.Clickのみを提供し、通常のEventArgsオブジェクトでのみ機能しEventHandlersます。

DevExpress.XtraBars.ItemClickEventArgsハンドラーで特殊なオブジェクトを取得しようとしていますが、イベントはそれを提供しません

あなたがやろうとしていることは可能ではないと思います。ハンドラーを減らして通常のを必要とするだけにするか、イベントがを提供するEventArgsボタンのタイプを見つける必要があります。ClickItemClickEventArgs

于 2012-10-11T08:45:37.137 に答える
0

署名がイベントに必要なデリゲートと一致する場合は、メソッド名をイベントに直接割り当てることができます

item.Click += iDeactivate_ItemClick;
于 2012-10-11T08:46:10.807 に答える
0
item.Click += cClickHandler;

あなたはすでに代理人を通過したのであなたにとって十分でしょう

于 2012-10-11T08:47:42.263 に答える