1、创建信息提示框控件
在控件库添加用户控件,命名为InfoTip;
在属性/布局栏将Size设置为148,128。
2、修改InfoTip.cs
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Windows.Forms;
namespace UserControlLib
{
public partial class InfoTip : UserControl
{
private string[] segment;
private System.Timers.Timer CommandTimer = new System.Timers.Timer();
int counter = 3;
public InfoTip()
{
InitializeComponent();
CommandTimer.Interval += 1000;
CommandTimer.Elapsed += CommandTimer_Elapsed;
CommandTimer.Start();
}
private void CommandTimer_Elapsed(object sender, ElapsedEventArgs e)
{
if (this.InvokeRequired)
{
MethodInvoker mi = delegate ()
{
if (this.Visible)
{
if (counter != 0)
{
counter--;
}
if (counter == 0)
{
this.Visible = false;
counter = 3;
}
}
};
this.Invoke(mi);
}
else
{
if (this.Visible)
{
if (counter != 0)
{
counter--;
}
if (counter == 0)
{
this.Visible = false;
}
}
}
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var g = e.Graphics;
g.SmoothingMode = SmoothingMode.AntiAlias;
for (int i = 0; i < segment.Length; i++)
{
g.DrawString(segment[i], new Font("Yahei", 9f), new SolidBrush(Color.Black), 5, 15 * i + 5);
}
}
private string content;
[Description("闩锁状态"), Category("自定义")]
public string Content
{
get { return content; }
set
{
content = value;
string[] arr = content.Split(',');
segment = arr;
Invalidate();
}
}
}
}