你需要一个对你的Main
表单的引用,它需要传递给你的类(可能在构造函数中):
public class MyClass
{
private Form Main { get; set; }
public MyClass(Form main, ...)
{
Main = main;
}
}
然后你会从你的班级中调用该项目:
private method DoSomething(...)
{
Main.TaskbarIcon.ShowBalloonTip(...);
}
但是,正如您所提到的,最好在您的类和实际对象之间放置一些东西。
编辑: 您还可以传递一个委托来调用,它将为您进行更改,或者您可以传递对该项目的引用(同样,不推荐)。但是,请确保您在同一线程上执行所有这些操作。
Edit2: 在链接的基础上,您的界面可能如下所示:
interface IYourForm
{
void ShowBalloonTip(int timeout, string tipTitle, string tipText, ToolTipIcon tipIcon);
}
然后,您的表单将实现该接口:
class YourForm : Form, IYourForm
和方法:
public void ShowBalloonTip(int timeout, string tipTitle, string tipText, ToolTipIcon tipIcon)
{
TaskbarIcon.ShowBalloonTip(timeout, tipTitle, tipText, tipIcon);
}
然后,这会将您的 DoSomething 方法更改为如下所示:
private method DoSomething(int timeout, string tipTitle, string tipText, ToolTipIcon tipIcon)
{
Main.ShowBalloonTip(timeout, tipTitle, tipText, tipIcon);
}
再次确保这一切都在同一个线程上。否则,这需要以不同的方式处理。