024 程序员节, 用23种语言祝福大家,节日快乐,代码无bug,什么是程序员呢,指的是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。在外行的眼中,枯燥乏味的工作内容,加班工作和夜晚成为家常便饭,使大多数程序员经常成为被嘲笑的对象,“忙到哭”、“累到瘫痪”、 “不回家”、“单身狗”......虽然程序员工资很高,但他们真的很辛苦,如果没有他们在程序开发和维护方面的工作,人们在技术时代的生活无疑将是困难的。计算机科学发展到现在,程序员从业者很多,他们的分工不一样,一般从大方面分为以下几类: delphi程序员、 php程序员、 C程序员、 linux程序员, vb程序员、 java程序员、 javascript程序员、 C ++程序员、 Python程序员、 android程序员、 iOS程序员,全栈程序员等等。程序员使用代码来改变世界,在这个浮躁的世界中, 坚持追求知识、技术和创新,确实不易。
周到的程序员编码在傍晚回家
下面我用23种语言祝程序员节日快乐,语言不分排名先后,,,
一.Java程序员
代码:
#FileName: ProgramDay.java
public class ProgramDay #
{
#Java 入口程序,程序从此入口
public static void main(String[] args)
{
System.out.println("1024程序员节日快乐!");
}
}
二.C程序员
代码
#include <stdio.h>
int main() #main 入口函数
{
printf("1024程序员节日快乐!!"); #打印节日快乐
return 0;
}
三.C++程序员
代码:
#include <iostream> //std::cout 要用到的头文件
#include <stdio.h> //标准输入输出头文件
int main()
{
printf("1024程序员节日快乐\n"); //printf 语句打印
return 0;
}
四.Python程序员
我最喜欢的语言之一,人生苦短我用python,多么简洁的语句,完美,,,
代码
>>> print "1024程序员节日快乐" #Python 2.x
>>> print("1024程序员节日快乐") #Python 3.x
五.C# 程序员
C# 其实和 Java 非常相像,需要设置环境变量,当年一门和java 抗衡的语言,最近几年似乎用它做游戏蛮多的,特别是unity方面,
代码
//FileName: ProgramDay.cs
using System;
class ProgramDay
{
public static void Main()
{
Console.WriteLine("1024程序员节日快乐");
}
}
六.PHP程序员
代码
<!DOCTYPE html>
<body>
<?php
echo "1024程序员节日快乐"; //打印语句
?>
</body>
</html>
七. JavaScript(可能是前端也可能是后端的程序员)
代码
<script type="text/javascript">
alert("1024程序员节日快乐!");
</script>
八.Ruby
我最近的用途是在ios pod库部署环境时候,用了一下
代码
def say(name)
"#{name}"
end
puts say("1024程序员节日快乐!")
九.R
代码
在console中输入
print("1024程序员节日快乐")
十.SQL
代码
SQL> select '1024程序员节日快乐' from dual;
十一.Perl
代码
#!C:\Perl\bin #Windows 平台下
#!/usr/bin/env perl #Linux 环境下
print "1024程序员节日快乐!\n";
十二. HTML
<!DOCTYPE html>
<html>
<body>
<p>1024程序员节日快乐!</p>
</body>
</html>
十三.Scala
Scala 是一门把面向对象和函数式编程思想加入静态类型中的编程语言,
代码
object ProgramDay {
def main(args:Array[String])
{
println("1024程序员节日快乐!");
}
}
十四.Shell
代码
WINDOWS系统下,
D:\ProgramDay >echo "1024程序员节日快乐!"
十五.Delphi
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := '1024程序员节日快乐!';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
十六.Fortran
Fortran 是最早出现的计算机语言,主要用于科学及工程计算领域,这一点和 Python 相同
program programday
print *,"1024程序员节日快乐!"
end program programday
十七.Go
代码
package main
import "fmt"
func main() {
fmt.Printf("1024程序员节日快乐.\n")
}
十八.Oc
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//创建一个自动释放池
@autoreleasepool {
NSLog(@"1024程序员节日快乐!");
}
return 0;
}
十九.Actionscript
代码
var str:String="1024程序员节日快乐";
//定义一个函数,为clickEvent
var clickEvent:Function=function(){
//此函数触发之后,把Label1的文本改成str
Label1.text= str;
//然后向控制台输出str
trace(str);
}
//之后为Button1添加点击事件的监听器,为clickEvent这个函数
Button1.addEventListener("click",clickEvent);
二十.Matlab
代码
.m文件
function ProgramDay ()%输出1024程序员节日快乐!% Detailed explanation goes heredisp('1024程序员节日快乐!');End
二十一.swift
代码
import Foundation
print("1024程序员节日快乐!")
二十二.awk
代码
[root@Linux ~]# echo | awk '{print "1024程序员节日快乐!"}'
二十三.kotlin
代码
fun main(args: Array<String>) {
println("1024程序员节日快乐!")
}
二十四.Pascal
代码
Program ProgramDay(output); begin
writeln('1024程序员节日快乐') end
这么多语言,可以看出做程序的辛苦,加油吧,同志们!
两天在网上不小心看到“js许愿墙”这几个字,我的神经就全部被调动了。然后就开始我的百度生涯,一直寻觅许愿墙背景图片和便利贴图片,觅了好久……一直没找到满意的……无意间看到祝福语和一些卡通婚礼图片。最终我决定用jquery制作一个小型婚礼,并且实现添加祝福语的功能。
音乐响起来,开始我的婚礼进行曲~
一、婚礼演示图
场景一:
场景二:
场景三:
场景四:
场景五:
场景六:
场景七:
添加祝福语:
二、html代码
<div class="box"> <!-- 场景一 --> <div class="first-box"> <div class="first-horn"> <img src="images/first_horn.jpg"/> </div> <div class="first-txt"> <div class="txt1"><img src="images/first_txt1.jpg"/></div> <div class="txt2"><img src="images/first_txt2.jpg"/></div> </div> </div> <!-- 场景二 --> <div class="second-box"> <div class="second-people"> <img src="images/second_people.jpg"/> </div> <div class="second-txt"> <img src="images/second_txt.jpg"/> </div> </div> <!-- 场景三 --> <div class="three-box"> <div class="three-img"> <img src="images/three_img.jpg"/> </div> </div> <!-- 场景四 --> <div class="fore-box"> <div class="fore-img"> <img src="images/fore_img.jpg"/> </div> </div> <!-- 场景五 --> <div class="five-box"> <div class="five-img"> <img src="images/five_img.jpg"/> <div class="u-enter">进入婚礼</div> </div> </div> <!-- 场景六 --> <div class="six-box"> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> <!-- 场景七 --> <div class="seven-box"> <div class="clickMe">点我送祝福</div> <div class="seven-content"> <div class="note-a1"></div> <div class="note-a2"></div> <div class="note-a3"></div> <div class="note-a4"></div> <div class="note-a5"></div> <div class="note-a6"></div> <div class="note-a7"></div> <div class="note-a8"></div> <div class="note-a9"></div> <div class="note-a10"></div> <div class="note-a11"></div> <div class="note-a12"></div> <div class="note-1">一定要幸福哦~</div> <div class="note-2">祝你们白头偕老!</div> <div class="note-3">早生贵子~</div> <div class="note-4">新婚快乐~</div> <div class="note-5">生个宝宝认我做干妈!</div> <div class="note-6">喜结良缘O(∩_∩)O哈哈哈~</div> <div class="note-1">一定要幸福哦~</div> <div class="note-2">祝你们白头偕老!</div> <div class="note-3">早生贵子~</div> <div class="note-4">新婚快乐~</div> <div class="note-5">生个宝宝认我做干妈!</div> <div class="note-6">喜结良缘O(∩_∩)O哈哈哈~</div> </div> </div> </div> <!-- 遮罩层 --> <div class="mask"></div> <div class="pop-box"> <h1>送上祝福语</h1> <textarea id="write">写上您的祝福吧~</textarea> <div class="u-sure" id="uSure">确定</div> </div>
三、js代码
场景一:
var $firstHorn = $(".first-horn"), /* 场景一左边喇叭 */ $firstTxt = $(".first-txt"), /* 场景一文字div */ firstTxtWidth = $firstTxt.width(), /* 文字div的宽度 */ $secondBox = $(".second-box"), /* 场景二box */ $secondPeople = $(".second-people"), /* 场景二左边人物 */ $secondTxt = $(".second-txt"), /* 场景二右边文字 */ $threeBox = $(".three-box"), /* 场景三box */ $threeImg = $(".three-img"), /* 场景三图片 */ $foreBox = $(".fore-box"), /* 场景四box */ $foreImg = $(".fore-img"), /* 场景四图片 */ $fiveBox = $(".five-box"), /* 场景五box */ $fiveImg = $(".five-img"), /* 场景五中间图片 */ $uEnter = $(".u-enter"), /* 进入婚礼按钮 */ $sixBox = $(".six-box"), /* 场景六box */ $sixDiv = $sixBox.find("div"), /* 场景六里面小块div */ sixDivWidth = $sixDiv.width(), /* 场景六里面小块div的宽度 */ sixDivHeight = $sixDiv.height(), /* 场景六里面小块div的高度 */ sixBoxWidth = $sixBox.width(), /* 场景六宽度 */ sixBoxHeight = $sixBox.height(),/* 场景六高度 */ $sevenBox = $(".seven-box"); /* 场景一 */ $firstHorn.animate({left: 0},1000); $firstTxt.animate({left: "435px"},function(){ $firstTxt.fadeIn(1000); showTxt($firstTxt.find("div:eq(0)")); /* 显示第一行文字 */ setTimeout(function(){showTxt($firstTxt.find("div:eq(1)"));},3000); /* 显示第二行文字 */ setTimeout(scene2,7000); /* 进入场景二 */ }); /* 显示文字 */ function showTxt($obj){ for(var i = 0; i < 8; i++){ (function(){ $obj.animate({width: firstTxtWidth*(i+1)+"px"}); /* 根据i值,width逐渐变大 */ })(i) } }
描述:场景一主要有两个功能,第一个是控制左边图片,第二个是让右边文字逐一显示。
场景二:
/* 场景二 */ function scene2(){ $firstTxt.fadeOut(); $firstHorn.animate({left: "-422px"},function(){ $secondBox.show(); $secondPeople.animate({left: "0"}); $secondTxt.animate({left: "230px"},function(){ $secondTxt.fadeIn(1000); setTimeout(scene3,2000); /* 进入场景三 */ }); }); }
描述:场景二功能简单一点,只控制左边人物出现,紧接着是文字显示。
添加祝福语:
/* 点我送祝福 */ $clickMe.click(function(){ $write.val("送上您的祝福吧~"); $mask.fadeIn(); $popBox.animate({top: "50%"}); }) /* 获取焦点时 */ $write.focus(function(){ var _val = $(this).val(); if(_val == "送上您的祝福吧~"){ $(this).val(""); } }) /* 丢失焦点时 */ $write.blur(function(){ var _val = $(this).val(); if(_val.length == 0){ $(this).val("送上您的祝福吧~"); } }) /* 点击确定 */ $uSure.click(function(){ var _writeVal = $write.val(); var _randomNum = Math.ceil(Math.random()*6); if(_writeVal != "送上您的祝福吧~"){ var _div = '<div class="note-'+_randomNum+'">'+_writeVal+'</div>'; $sevenContent.append(_div); /* 如果输入祝福语,将此标签添加的尾部 */ defineSevenDiv($sevenContent.find("div:last")); $popBox.animate({top: "-300px"},function(){ $mask.fadeOut(); draggableNote(); /* 可拖动卡片,给新添加的标签赋予拖动功能 */ }); }else{ alert("请输入祝福语!"); } })
描述:添加祝福语中,需填写祝福语,否则不让提交。可提交的祝福语便随机散布在祝福墙中,可实现随意拖动功能。
js所有代码:
/** * User: wei ya * Date: 14-6-12 * Time: 下午8:08 * 小型婚礼 */ $(function(){ var $firstHorn = $(".first-horn"), /* 场景一左边喇叭 */ $firstTxt = $(".first-txt"), /* 场景一文字div */ firstTxtWidth = $firstTxt.width(), /* 文字div的宽度 */ $secondBox = $(".second-box"), /* 场景二box */ $secondPeople = $(".second-people"), /* 场景二左边人物 */ $secondTxt = $(".second-txt"), /* 场景二右边文字 */ $threeBox = $(".three-box"), /* 场景三box */ $threeImg = $(".three-img"), /* 场景三图片 */ $foreBox = $(".fore-box"), /* 场景四box */ $foreImg = $(".fore-img"), /* 场景四图片 */ $fiveBox = $(".five-box"), /* 场景五box */ $fiveImg = $(".five-img"), /* 场景五中间图片 */ $uEnter = $(".u-enter"), /* 进入婚礼按钮 */ $sixBox = $(".six-box"), /* 场景六box */ $sixDiv = $sixBox.find("div"), /* 场景六里面小块div */ sixDivWidth = $sixDiv.width(), /* 场景六里面小块div的宽度 */ sixDivHeight = $sixDiv.height(), /* 场景六里面小块div的高度 */ sixBoxWidth = $sixBox.width(), /* 场景六宽度 */ sixBoxHeight = $sixBox.height(),/* 场景六高度 */ $sevenBox = $(".seven-box"); /* 场景一 */ $firstHorn.animate({left: 0},1000); $firstTxt.animate({left: "435px"},function(){ $firstTxt.fadeIn(1000); showTxt($firstTxt.find("div:eq(0)")); /* 显示第一行文字 */ setTimeout(function(){showTxt($firstTxt.find("div:eq(1)"));},3000); /* 显示第二行文字 */ setTimeout(scene2,7000); /* 进入场景二 */ }); /* 显示文字 */ function showTxt($obj){ for(var i = 0; i < 8; i++){ (function(){ $obj.animate({width: firstTxtWidth*(i+1)+"px"}); /* 根据i值,width逐渐变大 */ })(i) } } /* 场景二 */ function scene2(){ $firstTxt.fadeOut(); $firstHorn.animate({left: "-422px"},function(){ $secondBox.show(); $secondPeople.animate({left: "0"}); $secondTxt.animate({left: "230px"},function(){ $secondTxt.fadeIn(1000); setTimeout(scene3,2000); /* 进入场景三 */ }); }); } /* 场景三 */ function scene3(){ $secondBox.hide(); $threeBox.fadeIn(); for(var i = 0; i < 6; i++){ /* 控制图片跳转频率 */ if(i==0){ $threeImg.css({left:0,top:0}); }else if(i%2==0){ $threeImg.animate({left: 40*i+"px",top: 30*i+"px"},80*(6-i)); }else{ $threeImg.animate({left: 40*i+"px",top: "200px"},80*(6-i)); } } setTimeout(scene4,2500); /* 进入场景四 */ } /* 场景四 */ function scene4(){ $threeBox.hide(); $foreBox.fadeIn(); $foreImg.animate({top: "80px"},1000); setTimeout(scene5,2500); /* 进入场景五 */ } /* 场景五 */ function scene5(){ $foreImg.animate({left: "960px"},function(){ $fiveBox.fadeIn(); $fiveBox.find("img").css({"transform": "scale(1)"}); $uEnter.click(function(){ $fiveBox.hide(); setTimeout(scene6,400); /* 进入第六场景 */ }) }); } /* 场景六 */ var colCount = 4, /* 多少列 */ rowCount = 4; /* 多少行 */ function scene6(){ $sixBox.fadeIn(); /* 聚合 */ $sixDiv.each(function(){ var _index = $(this).index(), col = _index%colCount, /* 第几列 */ row = Math.floor(_index/rowCount), /* 第几行 */ cssLeft = sixBoxWidth/2 - colCount/2*sixDivWidth + col*sixDivWidth, /* left的值 */ cssTop = sixBoxHeight/2 - rowCount/2*sixDivHeight + row*sixDivHeight, /* top的值 */ divLeft = -col*sixDivWidth, /* 背景定位的宽度 */ divTop = -row*sixDivHeight; /* 背景定位的高度 */ $(this).css({"left": cssLeft,"top": cssTop, "background-position": divLeft+"px "+divTop+"px"}); /* 先设置成为聚合,定位好背景图片 */ setTimeout(scatter,1600); /* 调用散开 */ }) setTimeout(scene7,3000); /* 进入第七场景 */ } /* 散开 */ function scatter(){ $sixDiv.each(function(){ var _index = $(this).index(), col = _index%colCount, /* 第几列 */ row = Math.floor(_index/rowCount), /* 第几行 */ cssLeft = (col-1)*(sixBoxWidth+sixDivWidth)- sixDivWidth, /* 我这里的水平间距大小为盒子大小加上它自身的宽度 */ cssTop = (row-1)*(sixBoxHeight+sixDivHeight)- sixDivWidth; /* 我这里的水平间距大小为盒子大小加上它自身的宽度 */ $(this).animate({"left": cssLeft,"top": cssTop},1200); }) } /* 场景七 */ var $sevenDiv = $(".seven-content div"), $clickMe = $(".clickMe"), /* 送上祝福 */ $mask = $(".mask"), $popBox = $(".pop-box"), $write = $("#write"), $uSure = $("#uSure"), $sevenContent = $(".seven-content"); function scene7(){ $sixBox.hide(); $sevenBox.fadeIn(1000); $sevenDiv.each(function(){ defineSevenDiv($(this)); }) function defineSevenDiv($own){ var _obj = defineRandom(); $own.css({"transform":"rotate("+_obj.rotate+"deg)"}); /* 设置随机旋转值 */ $own.animate({left: _obj.left+"px",top: _obj.top+"px"}); /* 随机排布 */ } /* 定义随机left,top和旋转值 */ function defineRandom(){ var randomLeft = Math.floor(680*(Math.random())) + 30, /* 图片left值 */ randomTop = Math.floor(400*Math.random()) + 30, /* 图片top值 */ randomRotate = 20 - Math.floor(40*Math.random()); /* 图片旋转角度 */ return { left: randomLeft, top: randomTop, rotate:randomRotate } } /* 拖动祝福卡片 */ draggableNote(); /* 拖动图片 */ function draggableNote(){ $(".seven-content div").draggable({ containment: $sevenContent, zIndex: 2700, start: function(){ $(this).css({"transform":"rotate(0deg)","cursor": "crosshair"}); /* 开始拖动图片旋转为0,鼠标样式改变 */ }, stop: function(){ var _obj = defineRandom(); $(this).css({"transform":"rotate("+_obj.rotate+"deg)","cursor": "pointer"}); /* 停止拖动,旋转为随机的 */ } }) } /* 点我送祝福 */ $clickMe.click(function(){ $write.val("送上您的祝福吧~"); $mask.fadeIn(); $popBox.animate({top: "50%"}); }) /* 获取焦点时 */ $write.focus(function(){ var _val = $(this).val(); if(_val == "送上您的祝福吧~"){ $(this).val(""); } }) /* 丢失焦点时 */ $write.blur(function(){ var _val = $(this).val(); if(_val.length == 0){ $(this).val("送上您的祝福吧~"); } }) /* 点击确定 */ $uSure.click(function(){ var _writeVal = $write.val(); var _randomNum = Math.ceil(Math.random()*6); if(_writeVal != "送上您的祝福吧~"){ var _div = '<div class="note-'+_randomNum+'">'+_writeVal+'</div>'; $sevenContent.append(_div); /* 如果输入祝福语,将此标签添加的尾部 */ defineSevenDiv($sevenContent.find("div:last")); $popBox.animate({top: "-300px"},function(){ $mask.fadeOut(); draggableNote(); /* 可拖动卡片,给新添加的标签赋予拖动功能 */ }); }else{ alert("请输入祝福语!"); } }) } })
总结:做完这个小型婚礼,我自己都喜欢自己了,嘿嘿,小小自恋下,希望这个动画也能给大家一个小惊喜。如果大家觉得不错,希望大家能动动小手给我一个小小的赞,促使我不断努力不断去发现,谢谢~ O(∩_∩)O~~
下载:download.csdn.net/download/ya307115947/7497205
链接:cnblogs.com/tattoo/p/3788019.html
回复“资源”,领取 练手源码,视频教程,微服务、并发,数据可调优等,搜索【Java知音】
年一度的中秋节马上就到啦,小伙伴们收到月饼了吗。
记得我的学生时代,邮件祝福还风靡过一段时间,打开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进行编译,可以发现界面分辨率正常了,瞬间好看不少有没有。
下篇文章,我们就开始正式编码了,或许可以赶上中秋给大家拜个晚年了,哈哈哈
如果各位觉得我写的对你有那么一点点帮助,欢迎一键三连~感激不尽~
*请认真填写需求信息,我们会在24小时内与您取得联系。