如何在 C# 代码中将事件处理程序添加到 ToolStripButton?
How to add a event handler to a ToolStripButton in C# code?
又是我,这是我的 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;
}
因此代码非常基本,但我在 private EventHandler StartPlugin() 处遇到错误 并非所有代码路径 return一个值请帮忙!
private EventHandler StartPlugin()
这一行,特别是 "EventHandler",意味着您正在 return 一个 EventHandler。您的代码不会这样做。要link按钮点击事件处理程序,你不只是使用一行,你还需要一个return,(e.x return button1.Click;)因为如果我使用了 return null;一旦你绑定它,它就会执行该操作。
您可能打算这样做:
pluginButton.Click += StartPlugin; // not StartPlugin()
private void StartPlugin(object sender, EventArgs e)
{
PluginPage plgp = new PluginPage();
plgp.Show();
plgp.Text = PlgTitle2;
}
看来您可能需要阅读更多有关委托和事件处理程序如何工作的内容。
您正在请求 EventHandler
,这意味着您必须 return EventHandler
。在您的处理程序中没有 return
,因此抛出此错误。
您可以使用 private void StartPlugin()
。 void
没有向 return 请求任何东西。
因此您的代码将如下所示:
pluginButton.Click += StartPlugin;
private void StartPlugin(object sender, EventArgs e)
{
PluginPage plgp = new PluginPage();
plgp.Show();
plgp.Text = PlgTitle2;
}
又是我,这是我的 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;
}
因此代码非常基本,但我在 private EventHandler StartPlugin() 处遇到错误 并非所有代码路径 return一个值请帮忙!
private EventHandler StartPlugin()
这一行,特别是 "EventHandler",意味着您正在 return 一个 EventHandler。您的代码不会这样做。要link按钮点击事件处理程序,你不只是使用一行,你还需要一个return,(e.x return button1.Click;)因为如果我使用了 return null;一旦你绑定它,它就会执行该操作。
您可能打算这样做:
pluginButton.Click += StartPlugin; // not StartPlugin()
private void StartPlugin(object sender, EventArgs e)
{
PluginPage plgp = new PluginPage();
plgp.Show();
plgp.Text = PlgTitle2;
}
看来您可能需要阅读更多有关委托和事件处理程序如何工作的内容。
您正在请求 EventHandler
,这意味着您必须 return EventHandler
。在您的处理程序中没有 return
,因此抛出此错误。
您可以使用 private void StartPlugin()
。 void
没有向 return 请求任何东西。
因此您的代码将如下所示:
pluginButton.Click += StartPlugin;
private void StartPlugin(object sender, EventArgs e)
{
PluginPage plgp = new PluginPage();
plgp.Show();
plgp.Text = PlgTitle2;
}