iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#怎么实现短消息提示窗口位置及窗口大小
  • 784
分享到

C#怎么实现短消息提示窗口位置及窗口大小

2023-07-04 18:07:39 784人浏览 泡泡鱼
摘要

本篇内容介绍了“C#怎么实现短消息提示窗口位置及窗口大小”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 短消息提示短消息提示Toast:用

本篇内容介绍了“C#怎么实现短消息提示窗口位置及窗口大小”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    一 短消息提示

    短消息提示Toast:

    用于呈现一条短消息,提示完成后即可自动消失;

    特点:

    ① 弹出式窗口;

    ② 短文本,可以折行显示;

    ③ 根据文本长度,自动调整大小;

    ④ 约1.5后,自动消失;

    二 弹出窗口

    winform中,所有的窗口都用FORM实现,比如:

    ① 常规窗口Window;

    ② 对话框窗口Dialog;

    ③ 悬浮窗口FloatWindow;

    工具提示Tooltip;

    ⑤ 弹出式窗口Popup(如菜单窗口、下拉列表窗口);

    自定义一个Form类,即可定义一个窗口

    public class myToast:Form{}

    本窗口不需要边框,位置和大小都是自己控制的。

    创建并显示窗口

    myToast toast=new myToast();toast.ShowMessage("This is a totas!");

    子窗体代码

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Text;using System.Linq;using System.Runtime.InteropServices;using System.Text;using System.Threading.Tasks;using System.windows.Forms;namespace 弹窗提示{    public partial class Toast : Form    {        private string message;        public Toast()        {            //无边框            this.FormBorderStyle = FormBorderStyle.None;            //背景白色            this.BackColor = Color.White;        }        public void ShowMessage(string message)        {            this.message = message;            //手动指定位置            this.StartPosition = FormStartPosition.Manual;            this.Location = new Point(0, 0);            this.Size = new Size(300, 100);            //显示窗口            this.Show();        }        protected override void OnPaint(PaintEventArgs e)        {            base.OnPaint(e);            Graphics g = e.Graphics;            int w = this.Width, h = this.Height;            Rectangle rect = new Rectangle(0, 0, w, h);            rect.Inflate(-4, -4);            //平滑绘制,反锯齿            g.SmoothingMode = SmoothingMode.HighQuality;            g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;            if(message!=null)            {                StringFormat sf = new StringFormat();                sf.Alignment = StringAlignment.Center;                sf.LineAlignment = StringAlignment.Center;                Brush brush = new SolidBrush(Color.Black);                g.DrawString(message, this.Font, brush, rect, sf);                brush.Dispose();            }        }    }}

    父窗体代码

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 弹窗提示{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            Toast toast = new Toast();            toast.ShowMessage("This is a toast!");        }    }}

    三 窗口位置

    toast窗口显示时,相当于主窗口位置居中。

    ① 找到主窗口,得到主窗口的位置;

    ② 计算toast窗口的位置;

    toast窗口显示时,不剥夺主窗口的焦点,需要重写ShowWithoutActivation

    protected override bool ShowWithoutActivation{   get   {      return true;   }}

    1 要点与细节

    ① 已知一个控件Control,可以得到它所在的窗口;

    Form form=ctrl.FindForm();

    子窗体代码:

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Text;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 窗口位置{    public partial class Toast : Form    {        private string message;        public Toast()        {            this.FormBorderStyle = FormBorderStyle.None;            this.BackColor = Color.White;            this.ShowInTaskbar = false;        }        //owner 可以是子窗口也可以是控件        public void ShowMessage(Control owner,string message)        {            this.message = message;            this.StartPosition = FormStartPosition.Manual;            this.Size = new Size(300, 100);            //找到owner所在的顶级窗口            Form form = owner.FindForm();            this.Owner = form;            //使toast窗口相对主窗口居中            Rectangle fr = new Rectangle(form.Location, form.Size);            int x = fr.X + (fr.Width - this.Width) / 2;            int y = fr.Y + (fr.Width - this.Height) / 2;            this.Location = new Point(x, y);            this.Show();        }        //焦点控制:本窗口不剥夺主窗口的焦点        //否则,当toast窗口激活时,主窗口焦点被剥夺        protected override bool ShowWithoutActivation        {            get { return true; }        }        protected override void OnPaint(PaintEventArgs e)        {            base.OnPaint(e);            Graphics g = e.Graphics;            int w = this.Width, h = this.Height;            Rectangle rect = new Rectangle(0, 0, w, h);            rect.Inflate(-4, -4);            //平滑绘制,反锯齿            g.SmoothingMode = SmoothingMode.HighQuality;            g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;            if(message!=null)            {                StringFormat sf = new StringFormat();                sf.Alignment = StringAlignment.Center;                sf.LineAlignment = StringAlignment.Center;                Brush brush = new SolidBrush(Color.Black);                g.DrawString(message, this.Font, brush, rect, sf);                brush.Dispose();            }        }    }}

    父窗体代码

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace 窗口位置{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            Toast toast = new Toast();            toast.ShowMessage(button1, "中国人民解放军!");        }    }}

    四 窗口大小

    Toast的窗口的大小,应该根据消息长度来调整,比如:

    toast.ShowMessage(button1,"成功");toast.ShowMessage(button1,"思密达");toast.ShowMessage(button1,"编程是一种艺术");

    使用Graphics.MeasureString()可以测算文本的尺寸

    Graphics g=this.CreateGraphics();SizeF size=g.MeasureString(str,this.Font,300);g.Dispose();

    注意,临时创建的Graphics用完之后需要手工销毁。

    “C#怎么实现短消息提示窗口位置及窗口大小”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    --结束END--

    本文标题: C#怎么实现短消息提示窗口位置及窗口大小

    本文链接: https://www.lsjlt.com/news/346722.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • C#怎么实现短消息提示窗口位置及窗口大小
      本篇内容介绍了“C#怎么实现短消息提示窗口位置及窗口大小”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 短消息提示短消息提示Toast:用...
      99+
      2023-07-04
    • C#短消息提示窗口位置及窗口大小详解
      目录一 短消息提示二 弹出窗口三 窗口位置1 要点与细节四 窗口大小总结一 短消息提示 短消息提示Toast: 用于呈现一条短消息,提示完成后即可自动消失; 特点: ① 弹出式窗口;...
      99+
      2022-12-08
      c#短消息提示 c#消息窗口 C#弹窗提示
    • C#怎么重写Notification提示窗口
      这篇文章主要介绍了C#怎么重写Notification提示窗口的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#怎么重写Notification提示窗口文章都会有所收获,下面我们一起来看看吧。这个窗口是右下角提...
      99+
      2023-06-30
    • css怎么设置窗口的大小
      CSS是一种强大的网页设计语言,它可以被用来指定网页的外观和布局。其中,设置窗口大小也是CSS的一个重要功能之一。在CSS中,可以通过设置“width”和“height”属性来指定元素的尺寸。这些属性可以应用于大多数HTML标签,包括bod...
      99+
      2023-05-14
    • 怎么用C#实现MSN Messenger窗口
      这篇文章主要介绍“怎么用C#实现MSN Messenger窗口”,在日常操作中,相信很多人在怎么用C#实现MSN Messenger窗口问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C#实现MSN Me...
      99+
      2023-06-17
    • winform怎么设置不允许改变窗口大小
      要禁止用户改变窗口大小,可以通过设置FormBorderStyle属性为FixedSingle来实现。在WinForm中,可以通过以...
      99+
      2023-10-10
      winform
    • 怎么用C#脚本实现QQ聊天窗口
      本篇内容介绍了“怎么用C#脚本实现QQ聊天窗口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!分析需要两个TextBox,一个用于显示消息,一...
      99+
      2023-06-29
    • 怎么用C#实现一个QQ聊天窗口
      这期内容当中小编将会给大家带来有关怎么用C#实现一个QQ聊天窗口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。using System;using System.Collections...
      99+
      2023-06-20
    • C#怎么实现弹窗提示输入密码
      这篇文章主要介绍“C#怎么实现弹窗提示输入密码”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#怎么实现弹窗提示输入密码”文章能帮助大家解决问题。具体内容如下String PM ...
      99+
      2023-06-29
    • JS怎么实现定时自动消失的弹出窗口
      本篇内容介绍了“JS怎么实现定时自动消失的弹出窗口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Demo.html<!DOCTYP...
      99+
      2023-06-30
    • windows系统怎么取消关机时强制关闭程序提示窗口?
      在写经验时,因为要操作用户帐户,结果弄得系统所有设置都恢复到系统默认状态了,其它的就不说,说一下关机时,总会弹出一个“强制关闭程序的提示窗口”,怎样把这个窗口关闭掉呢。找了一些资料,终于明白怎样设...
      99+
      2023-06-12
      Windows测试模式怎么退出? 关闭程序 提示 系统 windows 关机时
    • 怎么用C#代码实现简化QQ聊天窗口
      本文小编为大家详细介绍“怎么用C#代码实现简化QQ聊天窗口”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用C#代码实现简化QQ聊天窗口”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。如图样式,详细步骤如下整个...
      99+
      2023-06-29
    • 电脑出现用户界面失败提示窗口怎么解决
      本篇内容主要讲解“电脑出现用户界面失败提示窗口怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“电脑出现用户界面失败提示窗口怎么解决”吧!解决方法: 1.开机按F8键进入高级启动选...
      99+
      2023-06-28
    • 怎么设置win7预览窗口的大小即任务栏略缩图的尺寸大小
      系统中把鼠标移动到任务栏出,都会显示程序的略缩图,这样十分方便我们查找,有些用户认为图比较小,   操作步骤   1、按下键盘上的Win+R键,打开运行对话框,输入regedit,进入注册表编辑器。   2、依次展开到...
      99+
      2023-06-01
      win7预览窗口 任务栏 略缩图尺寸 大小 任务 栏略 预览
    • Vue怎么实现微信聊天窗口展示组件功能
      这篇文章主要介绍“Vue怎么实现微信聊天窗口展示组件功能”,在日常操作中,相信很多人在Vue怎么实现微信聊天窗口展示组件功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么实现微信聊天窗口展示组件功能...
      99+
      2023-07-04
    • HTML怎么实现展示的文字在浏览器窗口展示的一样
      这篇文章主要介绍“HTML怎么实现展示的文字在浏览器窗口展示的一样”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML怎么实现展示的文字在浏览器窗口展示的一样”文...
      99+
      2024-04-02
    • C#中TextBox的横线样式及占位提示怎么实现
      这篇文章主要介绍了C#中TextBox的横线样式及占位提示怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#中TextBox的横线样式及占位提示怎么实现文章都会有所收获,下面我们一起来看看吧。开发环境....
      99+
      2023-07-04
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作