【问题标题】:Can I use a Balloon tip from one class, while the NotifyIcon resides in a different class?我可以使用一个类的气球提示,而 NotifyIcon 位于不同的类中吗?
【发布时间】:2011-12-18 20:29:59
【问题描述】:

我的主表单附有一个 NotifyIcon 用于气球提示。我有一个单独的 BalloonTip 类,它进行一些处理以确定进入气球的内容。如何在 BalloonTip 类的主窗体/类中使用 notifyIcon?

编辑:我不确定如何通过引用传递通知图标

//passing data to my balloon class
ShowBalloonTip(data, ref notifyIcon1);

//not sure how to receive the notifyicon here
public void ShowBalloonTip(string s, object notifyicon)

有什么建议吗?

【问题讨论】:

  • 将 NotifyIcon 的引用传递给 BalloonTip 实例。
  • 我不知道该怎么做。请参阅我的操作以获取更新。
  • 这很基本。您需要一个BalloonTip 类的方法,该方法采用NotifyIcon 类型的参数。没有ref 或object 或任何东西。就像这样:void DoSomething(NotifyIcon notifyIcon);
  • 如果你正式回答这个问题,我可以接受它是正确的。你的回答很完美。

标签: c# class notifyicon balloon-tip


【解决方案1】:

您只需将对NotifyIcon 的引用传递给BalloonTip 类。我不知道您的 BalloonTip 类是什么样的,但基本上您需要添加这样的方法:

void DoSomething(NotifyIcon notifyIcon);

另一个选项可能是将通知图标传递给BalloonTip 构造函数,以完全相同的方式,并制作引用的副本。如果您需要反复访问通知图标,这可能是有意义的。

但是,这会将两个类紧密结合在一起,如果您需要在没有通知图标的情况下使用气球提示,则可能会受到限制。

因此,另一种选择是从主表单类中的通知图标中提取信息并将其传递给气球提示类。这使两个类保持解耦和独立。当然,如果气球提示需要调用通知图标的方法,那么该方法将不起作用。

【讨论】:

  • 我确实需要反复访问通知图标。从通知图标中提取信息是什么意思?
  • 如果您只需要知道 NotifyIcon 的几个属性,那么您可以传递它们。如果您需要调用 NotifyIcon 的方法,那么这是行不通的。我有点漫无边际,因为我发现很难弄清楚你到底想要做什么。
  • 我有一个主窗体和一个设置窗体。附加到主窗体我有 notifyIcon1。我正在尝试使用该 notifyIcon1 来显示气球提示。我遇到的麻烦是我有一个名为 BalloonTip 的类。从任何一种形式,不同的事件都会向 BalloonTip 类发送不同的字符串。在该类中有一个 switch 语句,它根据传入的数据分配文本的标题和正文。我认为这将是处理多个表单抛出多个气球提示的最干净的方法。
  • 实际上,经过进一步审查,我认为您的原始答案可能没问题。我有十几个不同的事件通过向此方法发送特定的字符串来触发特定的气球提示,该方法将字符串以及 notifyIcon1 传递给我的 BalloonTip 类,因此实际上只有一个方法必须发送 notifyIcon。
猜你喜欢
  • 1970-01-01
  • 2011-02-19
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多