整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          1024 程序員節(jié),用24種語言祝福大家節(jié)日快樂,代碼無bug

          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)的最簡單的功能:

          • 可以輸入并記住賬號和密碼
          • 可以導(dǎo)入收件人信息
          • 可以自由選擇收件人
          • 郵件內(nèi)容可以針對收件人進(jìn)行個性化修改,可以輸入郵件標(biāo)題,可以附帶圖片
          • 有發(fā)送郵件的功能

          需求整理完成,說干就干。

          布局

          首先新建一個窗體,定義為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)界面分辨率正常了,瞬間好看不少有沒有。

          下篇文章,我們就開始正式編碼了,或許可以趕上中秋給大家拜個晚年了,哈哈哈


          如果各位覺得我寫的對你有那么一點點幫助,歡迎一鍵三連~感激不盡~


          主站蜘蛛池模板: 日韩一区二区三区在线观看 | 国产人妖视频一区二区破除| 中文字幕乱码亚洲精品一区| 精品人妻一区二区三区四区在线| 蜜臀AV免费一区二区三区| 成人一区二区免费视频| 视频一区二区在线播放| 国产成人高清亚洲一区91| 无码一区二区三区AV免费| 污污内射在线观看一区二区少妇 | 中文乱码人妻系列一区二区| 无码人妻精品一区二区三18禁 | 狠狠色综合一区二区| 国产午夜精品一区二区三区| aⅴ一区二区三区无卡无码| 视频一区二区三区在线观看| 日韩精品一区二区三区不卡| 免费观看日本污污ww网站一区| 免费看无码自慰一区二区| 午夜性色一区二区三区不卡视频| 亚洲熟妇无码一区二区三区导航 | 国产精品av一区二区三区不卡蜜| 精品国产一区AV天美传媒| 99精品国产高清一区二区麻豆| 精品人妻系列无码一区二区三区| 奇米精品视频一区二区三区| 亚洲一区免费视频| 亚洲中文字幕乱码一区| 国产精品一区二区电影| 日本中文一区二区三区亚洲| 亚洲午夜日韩高清一区| 国产精品无码一区二区三区电影| 亚洲色大成网站www永久一区| 亚洲熟女少妇一区二区| 日韩一区精品视频一区二区| 少妇一晚三次一区二区三区| 国产伦精品一区三区视频| 精品亚洲一区二区三区在线观看 | 精品国产一区在线观看| 一区二区三区中文字幕| 久久久综合亚洲色一区二区三区|