024 程序員節(jié), 用23種語言祝福大家,節(jié)日快樂,代碼無bug,什么是程序員呢,指的是從事程序開發(fā)、維護(hù)的專業(yè)人員。一般將程序員分為程序設(shè)計人員和程序編碼人員,但兩者的界限并不非常清楚,特別是在中國。在外行的眼中,枯燥乏味的工作內(nèi)容,加班工作和夜晚成為家常便飯,使大多數(shù)程序員經(jīng)常成為被嘲笑的對象,“忙到哭”、“累到癱瘓”、 “不回家”、“單身狗”......雖然程序員工資很高,但他們真的很辛苦,如果沒有他們在程序開發(fā)和維護(hù)方面的工作,人們在技術(shù)時代的生活無疑將是困難的。計算機(jī)科學(xué)發(fā)展到現(xiàn)在,程序員從業(yè)者很多,他們的分工不一樣,一般從大方面分為以下幾類: delphi程序員、 php程序員、 C程序員、 linux程序員, vb程序員、 java程序員、 javascript程序員、 C ++程序員、 Python程序員、 android程序員、 iOS程序員,全棧程序員等等。程序員使用代碼來改變世界,在這個浮躁的世界中, 堅持追求知識、技術(shù)和創(chuàng)新,確實不易。
周到的程序員編碼在傍晚回家
下面我用23種語言祝程序員節(jié)日快樂,語言不分排名先后,,,
一.Java程序員
代碼:
#FileName: ProgramDay.java
public class ProgramDay #
{
#Java 入口程序,程序從此入口
public static void main(String[] args)
{
System.out.println("1024程序員節(jié)日快樂!");
}
}
二.C程序員
代碼
#include <stdio.h>
int main() #main 入口函數(shù)
{
printf("1024程序員節(jié)日快樂!!"); #打印節(jié)日快樂
return 0;
}
三.C++程序員
代碼:
#include <iostream> //std::cout 要用到的頭文件
#include <stdio.h> //標(biāo)準(zhǔn)輸入輸出頭文件
int main()
{
printf("1024程序員節(jié)日快樂\n"); //printf 語句打印
return 0;
}
四.Python程序員
我最喜歡的語言之一,人生苦短我用python,多么簡潔的語句,完美,,,
代碼
>>> print "1024程序員節(jié)日快樂" #Python 2.x
>>> print("1024程序員節(jié)日快樂") #Python 3.x
五.C# 程序員
C# 其實和 Java 非常相像,需要設(shè)置環(huán)境變量,當(dāng)年一門和java 抗衡的語言,最近幾年似乎用它做游戲蠻多的,特別是unity方面,
代碼
//FileName: ProgramDay.cs
using System;
class ProgramDay
{
public static void Main()
{
Console.WriteLine("1024程序員節(jié)日快樂");
}
}
六.PHP程序員
代碼
<!DOCTYPE html>
<body>
<?php
echo "1024程序員節(jié)日快樂"; //打印語句
?>
</body>
</html>
七. JavaScript(可能是前端也可能是后端的程序員)
代碼
<script type="text/javascript">
alert("1024程序員節(jié)日快樂!");
</script>
八.Ruby
我最近的用途是在ios pod庫部署環(huán)境時候,用了一下
代碼
def say(name)
"#{name}"
end
puts say("1024程序員節(jié)日快樂!")
九.R
代碼
在console中輸入
print("1024程序員節(jié)日快樂")
十.SQL
代碼
SQL> select '1024程序員節(jié)日快樂' from dual;
十一.Perl
代碼
#!C:\Perl\bin #Windows 平臺下
#!/usr/bin/env perl #Linux 環(huán)境下
print "1024程序員節(jié)日快樂!\n";
十二. HTML
<!DOCTYPE html>
<html>
<body>
<p>1024程序員節(jié)日快樂!</p>
</body>
</html>
十三.Scala
Scala 是一門把面向?qū)ο蠛秃瘮?shù)式編程思想加入靜態(tài)類型中的編程語言,
代碼
object ProgramDay {
def main(args:Array[String])
{
println("1024程序員節(jié)日快樂!");
}
}
十四.Shell
代碼
WINDOWS系統(tǒng)下,
D:\ProgramDay >echo "1024程序員節(jié)日快樂!"
十五.Delphi
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := '1024程序員節(jié)日快樂!';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
十六.Fortran
Fortran 是最早出現(xiàn)的計算機(jī)語言,主要用于科學(xué)及工程計算領(lǐng)域,這一點和 Python 相同
program programday
print *,"1024程序員節(jié)日快樂!"
end program programday
十七.Go
代碼
package main
import "fmt"
func main() {
fmt.Printf("1024程序員節(jié)日快樂.\n")
}
十八.Oc
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//創(chuàng)建一個自動釋放池
@autoreleasepool {
NSLog(@"1024程序員節(jié)日快樂!");
}
return 0;
}
十九.Actionscript
代碼
var str:String="1024程序員節(jié)日快樂";
//定義一個函數(shù),為clickEvent
var clickEvent:Function=function(){
//此函數(shù)觸發(fā)之后,把Label1的文本改成str
Label1.text= str;
//然后向控制臺輸出str
trace(str);
}
//之后為Button1添加點擊事件的監(jiān)聽器,為clickEvent這個函數(shù)
Button1.addEventListener("click",clickEvent);
二十.Matlab
代碼
.m文件
function ProgramDay ()%輸出1024程序員節(jié)日快樂!% Detailed explanation goes heredisp('1024程序員節(jié)日快樂!');End
二十一.swift
代碼
import Foundation
print("1024程序員節(jié)日快樂!")
二十二.awk
代碼
[root@Linux ~]# echo | awk '{print "1024程序員節(jié)日快樂!"}'
二十三.kotlin
代碼
fun main(args: Array<String>) {
println("1024程序員節(jié)日快樂!")
}
二十四.Pascal
代碼
Program ProgramDay(output); begin
writeln('1024程序員節(jié)日快樂') end
這么多語言,可以看出做程序的辛苦,加油吧,同志們!
兩天在網(wǎng)上不小心看到“js許愿墻”這幾個字,我的神經(jīng)就全部被調(diào)動了。然后就開始我的百度生涯,一直尋覓許愿墻背景圖片和便利貼圖片,覓了好久……一直沒找到滿意的……無意間看到祝福語和一些卡通婚禮圖片。最終我決定用jquery制作一個小型婚禮,并且實現(xiàn)添加祝福語的功能。
音樂響起來,開始我的婚禮進(jìn)行曲~
一、婚禮演示圖
場景一:
場景二:
場景三:
場景四:
場景五:
場景六:
場景七:
添加祝福語:
二、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">進(jìn)入婚禮</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">生個寶寶認(rèn)我做干媽!</div> <div class="note-6">喜結(jié)良緣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">生個寶寶認(rèn)我做干媽!</div> <div class="note-6">喜結(jié)良緣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"), /* 進(jìn)入婚禮按鈕 */ $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); /* 進(jìn)入場景二 */ }); /* 顯示文字 */ function showTxt($obj){ for(var i = 0; i < 8; i++){ (function(){ $obj.animate({width: firstTxtWidth*(i+1)+"px"}); /* 根據(jù)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); /* 進(jìn)入場景三 */ }); }); }
描述:場景二功能簡單一點,只控制左邊人物出現(xiàn),緊接著是文字顯示。
添加祝福語:
/* 點我送祝福 */ $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); /* 如果輸入祝福語,將此標(biāo)簽添加的尾部 */ defineSevenDiv($sevenContent.find("div:last")); $popBox.animate({top: "-300px"},function(){ $mask.fadeOut(); draggableNote(); /* 可拖動卡片,給新添加的標(biāo)簽賦予拖動功能 */ }); }else{ alert("請輸入祝福語!"); } })
描述:添加祝福語中,需填寫祝福語,否則不讓提交。可提交的祝福語便隨機(jī)散布在祝福墻中,可實現(xiàn)隨意拖動功能。
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"), /* 進(jìn)入婚禮按鈕 */ $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); /* 進(jìn)入場景二 */ }); /* 顯示文字 */ function showTxt($obj){ for(var i = 0; i < 8; i++){ (function(){ $obj.animate({width: firstTxtWidth*(i+1)+"px"}); /* 根據(jù)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); /* 進(jìn)入場景三 */ }); }); } /* 場景三 */ function scene3(){ $secondBox.hide(); $threeBox.fadeIn(); for(var i = 0; i < 6; i++){ /* 控制圖片跳轉(zhuǎn)頻率 */ 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); /* 進(jìn)入場景四 */ } /* 場景四 */ function scene4(){ $threeBox.hide(); $foreBox.fadeIn(); $foreImg.animate({top: "80px"},1000); setTimeout(scene5,2500); /* 進(jìn)入場景五 */ } /* 場景五 */ function scene5(){ $foreImg.animate({left: "960px"},function(){ $fiveBox.fadeIn(); $fiveBox.find("img").css({"transform": "scale(1)"}); $uEnter.click(function(){ $fiveBox.hide(); setTimeout(scene6,400); /* 進(jìn)入第六場景 */ }) }); } /* 場景六 */ 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"}); /* 先設(shè)置成為聚合,定位好背景圖片 */ setTimeout(scatter,1600); /* 調(diào)用散開 */ }) setTimeout(scene7,3000); /* 進(jìn)入第七場景 */ } /* 散開 */ 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)"}); /* 設(shè)置隨機(jī)旋轉(zhuǎn)值 */ $own.animate({left: _obj.left+"px",top: _obj.top+"px"}); /* 隨機(jī)排布 */ } /* 定義隨機(jī)left,top和旋轉(zhuǎn)值 */ 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()); /* 圖片旋轉(zhuǎn)角度 */ 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"}); /* 開始拖動圖片旋轉(zhuǎn)為0,鼠標(biāo)樣式改變 */ }, stop: function(){ var _obj = defineRandom(); $(this).css({"transform":"rotate("+_obj.rotate+"deg)","cursor": "pointer"}); /* 停止拖動,旋轉(zhuǎn)為隨機(jī)的 */ } }) } /* 點我送祝福 */ $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); /* 如果輸入祝福語,將此標(biāo)簽添加的尾部 */ defineSevenDiv($sevenContent.find("div:last")); $popBox.animate({top: "-300px"},function(){ $mask.fadeOut(); draggableNote(); /* 可拖動卡片,給新添加的標(biāo)簽賦予拖動功能 */ }); }else{ alert("請輸入祝福語!"); } }) } })
總結(jié):做完這個小型婚禮,我自己都喜歡自己了,嘿嘿,小小自戀下,希望這個動畫也能給大家一個小驚喜。如果大家覺得不錯,希望大家能動動小手給我一個小小的贊,促使我不斷努力不斷去發(fā)現(xiàn),謝謝~ O(∩_∩)O~~
下載:download.csdn.net/download/ya307115947/7497205
鏈接:cnblogs.com/tattoo/p/3788019.html
回復(fù)“資源”,領(lǐng)取 練手源碼,視頻教程,微服務(wù)、并發(fā),數(shù)據(jù)可調(diào)優(yōu)等,搜索【Java知音】
年一度的中秋節(jié)馬上就到啦,小伙伴們收到月餅了嗎。
記得我的學(xué)生時代,郵件祝福還風(fēng)靡過一段時間,打開QQ郵箱,各種轉(zhuǎn)發(fā)郵件和祝福郵件,現(xiàn)在想想都覺得有點久遠(yuǎn)了。
相信小伙伴們也都用過群發(fā)郵件的功能,例如QQ郵箱,163郵箱等都有提供這種功能,直接發(fā)送或者密送都可以。但都會存在一個問題,就是一鍵發(fā)送時,郵件內(nèi)容都是一樣的,無法針對收件人而有個性化的稱呼。針對這個需求,我們可以做一個群發(fā)郵件的桌面端軟件。
我們首先整理下我們需要實現(xiàn)的最簡單的功能:
需求整理完成,說干就干。
首先新建一個窗體,定義為MainForm。將MainForm的初始狀態(tài)修改為一打開就最大化。
this.WindowState = FormWindowState.Maximized;
我們可以用GroupBox將Mainform劃分為三部分,“登錄信息”,“收件人信息”,還有“郵件內(nèi)容”,如圖:
Tips:因為我們默認(rèn)窗口最大化,所以我們需要先設(shè)置三個GroupBox的Anchor屬性,依次分別為“Top,Bottom,Left”,“Top,Bottom,Left”和“Top,Bottom,Left,Right”。這樣GroupBox就會隨窗口大小變化而不至于打亂布局。
劃分布局之后,在每一個GroupBox中增加我們需要的控件。
“登錄信息”:
兩個Label(標(biāo)注“賬號”與“密碼”);
兩個TextBox(用來輸入賬號與密碼);
兩個CheckBox(一個用來記住賬戶密碼,一個用來隱藏密碼)。
用TextBox輸入密碼時,我們可以設(shè)置TextBox的UseSystemPasswordChar屬性為True,則我們輸入的文字都會以密文顯示。與CheckBox聯(lián)動,默認(rèn)勾選CheckBox時,密碼以符號顯示,不勾選CheckBox時,密碼以明文顯示。
代碼如下:
private void cbShowPwd_CheckedChanged(object sender, EventArgs e)
{
if (this.cbShowPwd.Checked == true)
{
this.tbPassword.UseSystemPasswordChar = false;
}
else
{
this.tbPassword.UseSystemPasswordChar = true;
}
}
實際效果如圖:
記住賬戶與密碼涉及本地存儲,我們后面具體寫代碼時再來實現(xiàn)這個功能,先按住不提。
“收件人信息”:
一個CheckBox(全選功能);
一個CheckListBox(用來顯示導(dǎo)入的收件人信息);
兩個Button(一個用來導(dǎo)入文件,一個用來確認(rèn)選擇收件人);
一個Label(用來顯示已選擇的收件人數(shù)量)。
關(guān)于CheckListBox的相關(guān)設(shè)置與全選功能具體可以查看我的上一篇文章(「Winform開發(fā)小技巧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導(dǎo)入收件人=>CheckListBox顯示收件人=>全選=>Label顯示已選人數(shù)=>點擊Button確認(rèn)選擇,收件人數(shù)據(jù)傳輸?shù)较乱粋€部分“郵件內(nèi)容”。
導(dǎo)入功能我們可以寫一個方法,這里先暫時不寫。
我們可以先解決Label的顯示問題。Label顯示選擇人數(shù)時,需要根據(jù)CheckListBox中Item的實時勾選狀態(tài)進(jìn)行變化,這個比較有趣,我們可以在CheckListBox的Itemcheck事件中實現(xiàn)。
代碼如下:
private void clbReceivers_ItemCheck(object sender, ItemCheckEventArgs e)
{
//這個事件是指示某項的選中狀態(tài)將要被更改、在更改前會執(zhí)行這個事件
//所以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();
}
}
實際效果如圖:(因為還沒有數(shù)據(jù),為了展示效果,我先手動輸入一些數(shù)據(jù))
“郵件內(nèi)容”:
兩個Label;
兩個TextBox(一個用來顯示收件人,一個用來輸入標(biāo)題,顯示收件人我們可以將其MultiLine屬性設(shè)置為True,這樣可以多行顯示);
一個RichTextBox(用來輸入正文內(nèi)容,后期我們用Html來發(fā)送文件,RichTextBox方便我們輸入段落及圖片);
一個Button(用來確認(rèn)發(fā)送郵件)。
效果如圖:
至此,我們的布局就全部完成了!
但是大家又沒有發(fā)現(xiàn)一個問題,由于Winfrom界面縮放問題,我們生成的界面有點模糊,很難看,針對這個問題,微軟有專門的解決方案。
首先右鍵項目=>添加新建項=>添加應(yīng)用程序清單文件。
打開app.manifest文件,取消application節(jié)點注釋
打開App.config文件,添加節(jié)點EnableWindowsFormsHighDpiAutoResizing,值為true
此時我們重新按F5進(jìn)行編譯,可以發(fā)現(xiàn)界面分辨率正常了,瞬間好看不少有沒有。
下篇文章,我們就開始正式編碼了,或許可以趕上中秋給大家拜個晚年了,哈哈哈
如果各位覺得我寫的對你有那么一點點幫助,歡迎一鍵三連~感激不盡~
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。