0

繰り返しますが、これは私のc# ブラウザーのプラグイン パーサーの別の問題です。イベント ハンドラーを追加して、プラグイン ボタンを押すと何かが実行される場所にしようとしています。コードでこれを行う必要があるのは、ファイルからプラグインをロードしていて、ハードコードされていないためです。ここに私のコードがあります。あなたがそれを見れば、それは最後のものにかなりよく似ているでしょう

toolStrip1.Items.Add( pluginButton );
pluginButton.Image = Simple_Browse.Properties.Resources.plugin;
pluginButton.Alignment = ToolStripItemAlignment.Right;
pluginButton.ToolTipText = TitlePlugin;
pluginButton.Click += StartPlugin();
private EventHandler StartPlugin()
{

    PluginPage plgp = new PluginPage();
    plgp.Show();
    plgp.Text = PlgTitle2;

}

したがって、コードは非常に基本的なものですが、プライベート EventHandler StartPlugin()でエラーが発生します。エラーは、すべてのコード パスが値を返すわけではありません。助けてください!

4

3 に答える 3

2

おそらく代わりにこれを行うつもりでした:

pluginButton.Click += StartPlugin; // not StartPlugin()
private void StartPlugin(object sender, EventArgs e)
{
    PluginPage plgp = new PluginPage();
    plgp.Show();
    plgp.Text = PlgTitle2;
}

デリゲートとイベント ハンドラーがどのように機能するかについて、もう少し読む必要があるようです。

于 2015-07-06T14:44:04.250 に答える
1

をリクエストしEventHandlerているため、 を返さなければなりませんEventHandler。ハンドラーには がないreturnため、このエラーがスローされます。

を使用できますprivate void StartPlugin()void返すように何も要求しません。

したがって、コードは次のようになります。

pluginButton.Click += StartPlugin;

private void StartPlugin(object sender, EventArgs e)
{
    PluginPage plgp = new PluginPage();
    plgp.Show();
    plgp.Text = PlgTitle2;
}
于 2015-07-06T14:44:29.170 に答える
0
private EventHandler StartPlugin()

この行、特に「EventHandler」は、EventHandler を返すことを意味します。あなたのコードはこれを行いません。EventHandler をボタン クリックにリンクするには、単に行を使用するだけではなく、リターンも必要です (ex return button1.Click;)。バインドすると、アクションが実行されます。

于 2015-07-06T14:42:06.833 に答える