用記事本寫winform小程式,簡單or複雜?

來源:互聯網
上載者:User

     今天開始整理電腦中的胡亂檔案,發現有很多自己用來練手用的小檔案非常有意思,裡面有個這樣的程式。有次系裡面搞活動,需要對現場觀眾進行抽獎,當時胡自己用flash設計了個,我覺得有意思就想自己寫一個,但是當時我還原後還沒有裝vs,只有個.net framework。我一直就很喜歡用記事本來寫一些簡單的資料結構和演算法題目,但是winform的程式還沒試過,但是我覺得應該是可以的。所以琢磨了一下午,完成了程式。當時心裡還是挺高興的,所以現在還記得這件事,但是當時沒有記錄下來,結果到前幾天我為了產生一個沒有dos視窗的背景程式試了很久才想起它。

     我不是自虐狂,放著犀利的VS不用,而用記事本去寫程式。只是覺得有時候沒有必要用到VS這把牛刀來砍螞蟻,而且我喜歡研究VS它本身到底是怎麼來實現某些意想不到的功能的,我也只能做些粗淺的探索。

     程式的功能很簡單,只是對14排30列的座位進行抽獎,主持人點擊開始或停止來抽取幾名幸運觀眾,因為這隻是個類比,我很簡單的調用Threading.timer然後直接用隨機數來抽取,也許會出現多次中獎的“幸運兒”:) 。主要問題是winform程式的編寫,首先要引用System.Windows.Forms命名空間,然後在類中聲明需要使用的控制項變數,然後在建構函式中初始化控制項,然後將控制項添加到容器中。其實我也不知道該怎麼正確的表述,看代碼吧。基礎知識看來還得加強啊。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Drawing;using System.Drawing.Drawing2D;public class Lottery : Form{    private Panel panel1;    private Label lblRow;    private Label lblSeat;    private Label numFront;    private Label numRear;    private Button btnStart;    private readonly int interval = 25;  //timer的觸發時段    private System.Threading.Timer timer = null;    private bool flag=true;        public Lottery()    {       panel1 =new Panel();       lblRow = new Label();           numFront = new Label();       lblSeat = new Label();       numRear = new Label();       btnStart=new Button();       this.panel1.SuspendLayout();       this.SuspendLayout();       this.AutoSize =true;       panel1.BackColor = System.Drawing.Color.Transparent;       this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;       panel1.Controls.Add(lblRow);       panel1.Controls.Add(numFront);       panel1.Controls.Add(lblSeat);       panel1.Controls.Add(numRear);       panel1.Controls.Add(btnStart);              this.Controls.Add(panel1);       lblRow.Text="排";       lblRow.Location = new Point(0,20);       lblRow.Size = new Size(20,20);       numFront.Text="*";       numFront.Location = new Point(20,20);        numFront.Size = new Size(20,20);          lblSeat.Text="座";         lblSeat.Location = new Point(40,20);        lblSeat.Size = new Size(20,20);       numRear.Text="*";       numRear.Location = new Point(60,20);       numRear.Size = new Size(20,20);       btnStart.Text = "Start";       btnStart.Location = new Point(100,60);       btnStart.Size = new Size(60,30);       btnStart.Click+=new System.EventHandler(this.btnStart_Click);    }        public void btnStart_Click(object sender,System.EventArgs e)    {        if(btnStart.Text.Equals("Start"))        {              Start();              btnStart.Text = "Pause";        }        else        {             Stop();             btnStart.Text ="Start";        }       }         public void Start()    {               timer  = new System.Threading.Timer(new TimerCallback(Walke), null, 100, interval);                 }    public void Walke(object o)    {         int tmp;         Random r = new Random();         tmp = r.Next(14);         numFront.Text = tmp.ToString();         tmp = r.Next(30);         numRear.Text = tmp.ToString();    }    public void Stop()    {         timer.Dispose();    }    [STAThread]    public static void Main(string[] args)    {          Application.Run(new Lottery());    }}

還有個很重要的編譯命令:

編輯form時,消掉dos介面

csc /t:winexe Program.cs

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.