码迷,mamicode.com
首页 > Windows程序 > 详细

Winfrom自定义弹框设计

时间:2020-03-18 11:43:44      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:windows   +=   resource   name   --   prim   mouse   lin   val   

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Media;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WinFormUi.Properties;

namespace WinFormUi
{
public partial class Form_Message : Form
{
public Form_Message()
{
InitializeComponent();
}
// 枚举要做的动作
public enum enmAction
{
wait,
start,
close
}
//枚举弹框类型
public enum enmType
{
success,
warning,
error,
info
}
private Form_Message.enmAction action;//用来记录当前弹框状态
private int x, y;//标注弹框位置

public void showAlert(string msg,enmType type)
{
this.Opacity = 0.0;
this.StartPosition = FormStartPosition.Manual;
string fname;
for (int i = 1; i < 10; i++)
{
fname = "alert" + i.ToString();
Form_Message frm = (Form_Message)Application.OpenForms[fname];
if (frm == null)
{
this.Name = fname;
this.x = Screen.PrimaryScreen.WorkingArea.Width - this.Width + 15;
this.y = Screen.PrimaryScreen.WorkingArea.Height - this.Height * i - 5 * i;
this.Location = new Point(this.x, this.y);
break;
}
}
this.x = Screen.PrimaryScreen.WorkingArea.Width - base.Width - 5;
switch (type)
{
case enmType.success:
this.pictureBox2.Image = Resources.success;
this.BackColor = Color.SeaGreen;
break;
case enmType.error:
this.pictureBox2.Image = Resources.error;
this.BackColor = Color.DarkRed;
break;
case enmType.info:
this.pictureBox2.Image = Resources.info;
this.BackColor = Color.RoyalBlue;
break;
case enmType.warning:
this.pictureBox2.Image = Resources.warning;
this.BackColor = Color.DarkOrange;
break;
}

this.labMsg.Text = msg;
this.Show();
this.action = enmAction.start;
this.timer1.Interval = 1;
RightVoiceAndHint();//加载提示音
timer1.Start();
}
private void Form1_Load(object sender, EventArgs e)
{
//this.frmClose.Image = Resources.close;
}

private void frmClose_Click(object sender, EventArgs e)
{
timer1.Interval = 1;
action = enmAction.close;
}

private void timer1_Tick(object sender, EventArgs e)
{
switch (this.action)
{
case enmAction.wait:
timer1.Interval = 5000;
action = enmAction.close;
break;
case enmAction.start:
timer1.Interval = 1;
this.Opacity += 0.1;
if (this.x < this.Location.X)
{
this.Left--;
}
else
{
if (this.Opacity == 1.0)
{
action = enmAction.wait;
}
}
break;
case enmAction.close:
timer1.Interval = 1;
this.Opacity -= 0.1;
this.Left -= 3;
if (base.Opacity == 0.0)
{
base.Close();
}
break;
}
}

private void frmClose_MouseHover(object sender, EventArgs e)
{
this.frmClose.Image = Resources.close_hover;
}

private void frmClose_MouseLeave(object sender, EventArgs e)
{
this.frmClose.Image = Resources.close;
}

public void RightVoiceAndHint()
{
//// 获取应用程序的当前工作目录。
string AppPath = System.IO.Directory.GetCurrentDirectory();
string Yxpath = AppPath + "\\Alert.wav";
SoundPlayer player = new SoundPlayer(Yxpath);
player.Play();
}
}
}

Winfrom自定义弹框设计

标签:windows   +=   resource   name   --   prim   mouse   lin   val   

原文地址:https://www.cnblogs.com/Csharp-jd/p/12516036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!