我希望托盘图标和应用程序图标对于应用程序中的所有表单都是通用的。 我怎样才能做到这一点。 对于申请图标: 我在应用程序的属性中添加了新图标,但仍在任务栏中显示默认图标。
对于托盘图标:我可以为单个表单执行多个功能,例如添加上下文菜单,隐藏,打开等。但是如何为所有表单实现此功能。
我可以创建一个可以应用于所有表单的全局文件吗?
答案 0 :(得分:1)
您可以使用Form.Load
事件或构造函数在代码中设置图标。
private void Form1_Load(object sender, EventArgs e)
{
// you could place this lines also in constructor
// but make sure you place it after the InitializeComponent() call
// bar is the name you defined while adding the resource
this.Icon = Properties.Resources.bar;
// and for your tray icons
this.notifyIcon1.Icon = Properties.Resources.bar;
}
您可以使用表单设计器执行相同操作,并在表单的属性部分和托盘图标中设置Icon
属性。在这种情况下,设计人员将在设计器生成的文件中放置几乎相同的代码。
修改强>
为了防止反复编写相同的代码,您可以编写自己的Form
基类并在构造函数中设置图标。然后你让所有Forms
派生自该基类。
// File: MyFormBase.cs
public partial class MyFormBase : Form
{
public MyFormBase()
: base()
{
Icon = Properties.Resources.bar;
}
}
// In your Form file:
public partial class MyForm : MyFormBase
{
// ...
}
将基类从From
更改为MyFormBase
后,您必须构建项目以再次使用表单设计器。