DevComponents.DotNetBar2.dll设置样式的使用
有点模仿QQ消息盒子的感觉,代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using DevComponents.DotNetBar; namespace BW_ArasSpirit
{
public partial class SystemMsgBox : Form
{
private static SystemMsgBox _initialize = null; public static SystemMsgBox getinstance()
{
if (_initialize == null)
{
_initialize = new SystemMsgBox();
}
return _initialize;
} #region 变量
private bool boolVisible = false;
#endregion #region 拖动无边框窗体
[DllImport("user32.dll")]//*********************拖动无窗体的控件
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
#endregion public SystemMsgBox()
{
InitializeComponent();
} //#region 鼠标Move Hover Leave样式区域
//private void labelShowMsg_MouseMove(object sender, MouseEventArgs e)
//{
// labelShowMsg.ForeColor = Color.FromArgb(50, 50, 50);
//} //private void labelShowMsg_MouseLeave(object sender, EventArgs e)
//{
// labelShowMsg.ForeColor = Color.FromArgb(100, 100, 100);
//}
//#endregion #region 取消窗体关闭事件
private void FormMessage_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
boolVisible = true;
timerShowWindow.Enabled = true;
timerWait.Enabled = false;
}
#endregion #region 窗体关闭
private void btnFormClose_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Close();
}
}
#endregion #region 显示窗体函数
public void ShowWindow(List<Task> wlplist,List<Task> ptasklist)
{
this.Show();
this.Opacity = 0;
boolVisible = false;
timerWait.Interval = 5000;
Point point;
try
{
point = frmSet.point;
}
catch (Exception e)
{
throw e;
}
this.Location = new Point((((point.X+10) + (point.X -10))/2)- (this.Size.Width/2), Screen.PrimaryScreen.Bounds.Height - 40 - this.Size.Height);
timerShowWindow.Enabled = true;
int wlpcount = wlplist.Count;
int pacount = ptasklist.Count;
if (wlpcount == 0)
{
lbltasklist.Text = "项目流任务-" + ptasklist[0].Ptaskname + " (" + ptasklist.Count + ")";
labelXTitle.Text ="消息盒子"+" ("+"1"+")";
}
if (pacount == 0)
{
lblwlplist.Text = "工作流任务-" + wlplist[0].Wlptaskname + " (" + wlplist.Count + ")";
labelXTitle.Text = "消息盒子" + " (" + "1" + ")";
}
if (wlpcount != 0 && pacount != 0)
{
lbltasklist.Text = "项目流任务-" + ptasklist[0].Ptaskname + " (" + ptasklist.Count + ")";
lblwlplist.Text = "工作流任务-" + wlplist[0].Wlptaskname + " (" + wlplist.Count + ")";
labelXTitle.Text = "消息盒子" + " (" + "2" + ")";
}
}
#endregion #region 控制窗体显示
private void timerShowWindow_Tick(object sender, EventArgs e)
{
if (!boolVisible)
{
this.Opacity += 0.1;
if (this.Opacity >= 1)
{
timerShowWindow.Enabled = false;
timerWait.Enabled = false;
boolVisible = false;
}
}
else
{
this.Opacity -= 0.1;
if (this.Opacity == 0)
{
boolVisible = false;
this.Hide();
timerShowWindow.Enabled = false;
timerWait.Enabled = false;
}
}
}
#endregion #region 等待
private void timerWait_Tick(object sender, EventArgs e)
{
timerShowWindow.Enabled = false;
timerWait.Enabled = false;
}
#endregion #region 移动无边框窗体事件
private void labelXTitle_MouseDown(object sender, MouseEventArgs e)
{
//ReleaseCapture();
//SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);//*********************调用移动无窗体控件函数
}
#endregion public delegate void MyDelegate(bool istrue);
public event MyDelegate MyEvent;
private void label1_Click(object sender, EventArgs e)
{
try
{
MyEvent(true);
this.Hide();
}
catch (Exception exp)
{
throw exp;
}
} public static bool istrueexit = false;
private void SystemMsgBox_Load(object sender, EventArgs e)
{ } //private void labelXTitle_MouseMove(object sender, MouseEventArgs e)
//{
// labelXTitle.ForeColor = Color.Red;
// labelXTitle.Font = new Font(labelXTitle.Font, FontStyle.Bold | FontStyle.Underline);
//} //private void labelXTitle_MouseLeave(object sender, EventArgs e)
//{
// labelXTitle.ForeColor = Color.White;
// labelXTitle.Font = new Font(labelXTitle.Font, FontStyle.Bold);
//}
}
} mian.cs public SystemMsgBox smb = SystemMsgBox.getinstance();
private void niIcon_MouseDown(object sender, MouseEventArgs e)
{
if (isRun && IsCloseWindow == "0")
{
point = Cursor.Position;
if (!smb.Visible)
{
smb.MyEvent +=new SystemMsgBox.MyDelegate(this.getreturnvalue);
smb.ShowWindow(wlptasklist,ptasklist);
timerpoint.Start();
}
}
} private Point lastpoint;
private void timerpoint_Tick(object sender, EventArgs e)
{
if (lastpoint == null) return;
if (smb.Visible)
{
//定义范围
//起始位置
lastpoint = Cursor.Position;
if (lastpoint.Y > point.Y + 100 || lastpoint.Y < point.Y - 100)
{
//超出高度隐藏
smb.Hide();
timerpoint.Stop();
}
//根据y的范围判定x的取值
int x = (((point.X + 10) + (point.X - 10)) / 2) - (211 / 2);
int y = Screen.PrimaryScreen.Bounds.Height - 40 - 97; //图标的上方,判断窗体的范围
if (lastpoint.Y < y || lastpoint.Y != y)
{
if (lastpoint.X < x || lastpoint.X > x + 211)
{
smb.Hide();
}
}
//图标的下方,判断图标的范围
//if (lastpoint.Y > y || lastpoint.Y != y)
//{
// if (lastpoint.X < x + 211 / 2 - 10 || lastpoint.X > x + 211 / 2 + 10)
// {
// smb.Hide();
// }
//}
}
}
DevComponents.DotNetBar2.dll设置样式的使用的更多相关文章
- [C#]AdvPropertyGrid的使用示例(第三方控件:DevComponents.DotNetBar2.dll)
开发环境:Visual Studio 2019 .NET版本:4.5.2 效果如下: 1.初始化界面: 2.属性“人物”-自定义控件显示: 3.属性“地址”-自定义窗体显示: 4.属性“性别”-枚举显 ...
- DotNetBar 中 SuperGridControl 加载数据、获取数据、设置样式
1.加载数据 构建列 //加载列 GridColumn gd = new GridColumn(); gd.Name = "第1"; gd.HeaderText = "第 ...
- word-wrap&&word-break,奇偶行、列设置样式
1.word-wrap和word-break区分. 来源场景:机械租赁mvc驾驶员信息查看: 当备注的文字多的时候,第一列的值成这模样: 解决方案:设置table 的td可自动换行.首先table设置 ...
- 注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式
注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式 这个坑,必须要注意呀, 比如在用ListView的时候,如果在List_ ...
- Vue系列: 如何通过组件的属性props设置样式
比如我们要在vue中显示百度地图,然后将相关的代码包装成组件,然后需要由外部来设置组件的高度,关于props的介绍,可以参考: http://cn.vuejs.org/guide/components ...
- 【使用 DOM】为DOM元素设置样式
1. 使用样式表 可以通过document.styleSheets属性访问文档中可用的CSS样式表,它会返回一组对象集合,这些对象代表了与文档管理的各个样式表. 每个样式表 都由一个CSSStyleS ...
- 【温故而知新-Javascript】为DOM元素设置样式
1. 使用样式表 可以通过document.styleSheets属性访问文档中可用的CSS样式表,它会返回一组对象集合,这些对象代表了与文档管理的各个样式表. 每个样式表 都由一个CSSStyleS ...
- 通过JavaScript设置样式和jQuey设置样式,还有随机数抛出水果的习题
一:通过JavaScript的方式设置样式(:拿习题为例): var shuiguo = document.getElementById('fruit'); shuiguo.style.bac ...
- c# Chart设置样式
一.chart属性熟悉 能够对C# chart控件属性熟悉起帮助的code, 现在分享给大家,Chart Operate Demo Code Download,如有帮助,别忘点个赞. Chart ...
随机推荐
- 执行 composer update 命令的时候报 Your requirements could not be resolved to an installable set of packages. 错误
Your requirements could not be resolved to an installable set of packages. 以上原因:不匹配composer.json要求的版 ...
- JS - 解决引入 js 文件无效的问题
增加 type 即可 <script type="text/javascript" src="....js"></script>
- 【LeetCode】验证二叉搜索树
[问题]给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数.节点的右子树只包含大于当前节点的数.所有左子树和右子树自身必须也是二叉搜 ...
- JMP CALL RET
一.JMP指令(修改EIP的值)(第一个修改EIP的指令) 三种方法 :JMP 立即数 JMP 寄存器 JMP 内存 EIP 之前介绍过,EIP存放的值就是cpu下一次要执行的地址 1.之前学过要 ...
- java集合对象区别二
集合包是Java中最常用的包,它最常用的有Collection和Map两个接口的实现类,Collection用于存放多个单对象,Map用于存放Key-Value形式的键值对. Collection中常 ...
- docker - how do you disable auto-restart on a container?
https://stackoverflow.com/questions/37599128/docker-how-do-you-disable-auto-restart-on-a-container 9 ...
- /Array.CreateInstance创建类型为int,长度为5的数组
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...
- 在线上Linux下,PHP扩展安装(使用yum安装)
直接操作linux,在命令模式下用yum 来安装PHP的扩展: 扩展:mbstring 命令: yum install php-mbstring* 扩展:GD库 命令:yum install php- ...
- HashMap源码阅读笔记
HashMap源码阅读笔记 本文在此博客的内容上进行了部分修改,旨在加深笔者对HashMap的理解,暂不讨论红黑树相关逻辑 概述 HashMap作为经常使用到的类,大多时候都是只知道大概原理,比如 ...
- Linux学习20200215