源:人民日报中央厨房-蓝蓝天工作室
虎年新春的钟声
即将敲响
在中国文化中
虎是勇敢和力量的象征
今天,从东北虎豹国家公园跃来的
冰雪健将“萌小虎”
前来陪您过年
为您送上专属新春祝福!
(识别海报中二维码,下载表情包)
虎年大吉~
“萌小虎”给您拜大年啦!
吃顿饺子,暖胃暖心,辞旧迎新~
新年来到,给大家发个红包~
喜迎虎年,共贺新春!
虎年接虎福,新年更幸福~
嗷呜~虎年氛围组已上线!
(#°Д°)!
虎虎生风加油干,生龙活虎过大年!
给努力的你手动点赞,棒棒哒~
哼~我瞧瞧谁没把本虎收藏!
大老远赶来的“萌小虎”
只带着一大包表情包来表“情”
那怎么够?
福虎送福
当然要诚意满满!
长按下图二维码并识别
或用手机微信直接扫码
您将亲手拼出一只“萌小虎”
解锁虎年聊天必备虎知识
拿到更多惊喜
眼明手快的你
将拥有虎年专属祝福
爱“拼”就会赢!快快接福吧!
(H5链接:http://v.people.cn/GB/177969/441849/index.html)
“萌小虎”的祝福,大家可要收好哟!
生龙活虎,龙腾虎跃
福虎迎春,虎到福到
快把新年海报晒到朋友圈吧
一起迎春接福
共祝国泰民安!
来源|人民网、人民日报中央厨房-蓝蓝天工作室
支持单位:国家林业和草原局(国家公园管理局)宣传中心、 东北虎豹国家公园管理局
本文来自【人民日报中央厨房-蓝蓝天工作室】,仅代表作者观点。全国党媒信息公共平台提供信息发布传播服务。
ID:jrtt
年一度的中秋节马上就到啦,小伙伴们收到月饼了吗。
记得我的学生时代,邮件祝福还风靡过一段时间,打开QQ邮箱,各种转发邮件和祝福邮件,现在想想都觉得有点久远了。
相信小伙伴们也都用过群发邮件的功能,例如QQ邮箱,163邮箱等都有提供这种功能,直接发送或者密送都可以。但都会存在一个问题,就是一键发送时,邮件内容都是一样的,无法针对收件人而有个性化的称呼。针对这个需求,我们可以做一个群发邮件的桌面端软件。
我们首先整理下我们需要实现的最简单的功能:
需求整理完成,说干就干。
首先新建一个窗体,定义为MainForm。将MainForm的初始状态修改为一打开就最大化。
this.WindowState=FormWindowState.Maximized;
我们可以用GroupBox将Mainform划分为三部分,“登录信息”,“收件人信息”,还有“邮件内容”,如图:
Tips:因为我们默认窗口最大化,所以我们需要先设置三个GroupBox的Anchor属性,依次分别为“Top,Bottom,Left”,“Top,Bottom,Left”和“Top,Bottom,Left,Right”。这样GroupBox就会随窗口大小变化而不至于打乱布局。
划分布局之后,在每一个GroupBox中增加我们需要的控件。
“登录信息”:
两个Label(标注“账号”与“密码”);
两个TextBox(用来输入账号与密码);
两个CheckBox(一个用来记住账户密码,一个用来隐藏密码)。
用TextBox输入密码时,我们可以设置TextBox的UseSystemPasswordChar属性为True,则我们输入的文字都会以密文显示。与CheckBox联动,默认勾选CheckBox时,密码以符号显示,不勾选CheckBox时,密码以明文显示。
代码如下:
private void cbShowPwd_CheckedChanged(object sender, EventArgs e)
{
if (this.cbShowPwd.Checked==true)
{
this.tbPassword.UseSystemPasswordChar=false;
}
else
{
this.tbPassword.UseSystemPasswordChar=true;
}
}
实际效果如图:
记住账户与密码涉及本地存储,我们后面具体写代码时再来实现这个功能,先按住不提。
“收件人信息”:
一个CheckBox(全选功能);
一个CheckListBox(用来显示导入的收件人信息);
两个Button(一个用来导入文件,一个用来确认选择收件人);
一个Label(用来显示已选择的收件人数量)。
关于CheckListBox的相关设置与全选功能具体可以查看我的上一篇文章(「Winform开发小技巧05」批量操作单号-CheckListBox)
全选功能代码:
private void cbSelectAll_CheckedChanged(object sender, EventArgs e)
{
//全选功能
if (this.cbSelectAll.Checked)
{
for (int i=0; i < this.clbReceivers.Items.Count; i++)
{
if (!this.clbReceivers.GetItemChecked(i))
this.clbReceivers.SetItemChecked(i,true);
}
}
else
{
for (int i=0; i < this.clbReceivers.Items.Count; i++)
{
if (this.clbReceivers.GetItemChecked(i))
this.clbReceivers.SetItemChecked(i, false);
}
}
}
这里的操作逻辑是:点击Button导入收件人=>CheckListBox显示收件人=>全选=>Label显示已选人数=>点击Button确认选择,收件人数据传输到下一个部分“邮件内容”。
导入功能我们可以写一个方法,这里先暂时不写。
我们可以先解决Label的显示问题。Label显示选择人数时,需要根据CheckListBox中Item的实时勾选状态进行变化,这个比较有趣,我们可以在CheckListBox的Itemcheck事件中实现。
代码如下:
private void clbReceivers_ItemCheck(object sender, ItemCheckEventArgs e)
{
//这个事件是指示某项的选中状态将要被更改、在更改前会执行这个事件
//所以checkedListBox.CheckedItems.Count获取的是更改之前的值
if (e.NewValue==CheckState.Checked)
{
this.lbSelectedCount.Text="已选:"+(this.clbReceivers.CheckedItems.Count + 1).ToString();
}
else
{
this.lbSelectedCount.Text="已选:" + (this.clbReceivers.CheckedItems.Count - 1).ToString();
}
}
实际效果如图:(因为还没有数据,为了展示效果,我先手动输入一些数据)
“邮件内容”:
两个Label;
两个TextBox(一个用来显示收件人,一个用来输入标题,显示收件人我们可以将其MultiLine属性设置为True,这样可以多行显示);
一个RichTextBox(用来输入正文内容,后期我们用Html来发送文件,RichTextBox方便我们输入段落及图片);
一个Button(用来确认发送邮件)。
效果如图:
至此,我们的布局就全部完成了!
但是大家又没有发现一个问题,由于Winfrom界面缩放问题,我们生成的界面有点模糊,很难看,针对这个问题,微软有专门的解决方案。
首先右键项目=>添加新建项=>添加应用程序清单文件。
打开app.manifest文件,取消application节点注释
打开App.config文件,添加节点EnableWindowsFormsHighDpiAutoResizing,值为true
此时我们重新按F5进行编译,可以发现界面分辨率正常了,瞬间好看不少有没有。
下篇文章,我们就开始正式编码了,或许可以赶上中秋给大家拜个晚年了,哈哈哈
如果各位觉得我写的对你有那么一点点帮助,欢迎一键三连~感激不尽~
有不到一个月,牛年春节就快到了。每到这个时候,各种新年的祝福语字体设计也大受欢迎,将这些祝福语用在海报、电商设计中,非常方便。
今天,我在站酷上看到了一组牛年祝福字体设计,觉得非常棒!关键是,这组字体是免费可商用的!下面,我就把这组字体分享给大家。
作者:志明刘
原文地址:
https://www.zcool.com.cn/work/ZNTAxNzQzODA=.html
网盘链接:
pan.baidu.com/s/1W8KgNv6cCWyIHJ9PPQvVCw
提取码:6666
这些字体都是手写的书法字体,有些字体加入了创意组合,增强了设计感和整体性。
如果你喜欢的话,就拿去吧!
最后,再次感谢原作者的辛勤付出!
*请认真填写需求信息,我们会在24小时内与您取得联系。