希望以下示例对您有所帮助。
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Windows.Forms;
namespace WhoAmI
{
public partial class Form1 : Form
{
private Point _clickPoint;
private bool _doMove = false;
protected override void OnPaint(PaintEventArgs e)
{
//base.OnPaint(e);
SolidBrush text_Brush = new SolidBrush(Color.FromArgb(255, Color.YellowGreen));
RectangleF text_box = new RectangleF(0, 0, this.Size.Width, this.Size.Height);
StringFormat f = new StringFormat();
f.Alignment = StringAlignment.Center;
f.LineAlignment = StringAlignment.Center;
//e.Graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
e.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
//e.Graphics.Clear(Color.Transparent);
e.Graphics.DrawRectangle(new Pen(Color.YellowGreen, 1), new Rectangle(0, 0, this.Size.Width, this.Size.Height));
//e.Graphics.FillRectangle(Brushes.Transparent, new Rectangle(0, 0, this.Size.Width - 1, this.Size.Height - 1));
e.Graphics.DrawString(System.Environment.MachineName, new Font("Arial", 18, FontStyle.Bold), text_Brush, text_box, f);
}
//Completely shown but not clickable!
//protected override CreateParams CreateParams
//{
// get
// {
// CreateParams parms = base.CreateParams;
// parms.ExStyle |= 0x20; // Turn on WS_EX_TRANSPARENT
// return parms;
// }
//}
protected override void OnPaintBackground(PaintEventArgs e)
{
//base.OnPaintBackground(e);
e.Graphics.FillRectangle(Brushes.Transparent, new Rectangle(0, 0, this.Size.Width - 1, this.Size.Height - 1));
}
public Form1()
{
InitializeComponent();
this.BackColor = Color.White;
this.TransparencyKey = this.BackColor;
//this.Opacity = 1F;
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
this._doMove = true;
this._clickPoint = new Point(e.X, e.Y);
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (this._doMove)
{
if (e.Button == MouseButtons.Left)
{
this.Location = new Point(this.Left + e.X - this._clickPoint.X, this.Top + e.Y - this._clickPoint.Y);
}
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
this._doMove = false;
}
private void Form1_MouseLeave(object sender, EventArgs e)
{
this._doMove = false;
}
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
if (MessageBox.Show("Exit this app?", "Who Am I?", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
{
this.Close();
this.Dispose();
}
}
}
}
}