Thứ Ba, 30 tháng 6, 2015



GIỚI THIỆU

Chào các bạn!

Hôm nay mình xin bắt đầu chuỗi bài hướng dẫn học lập trình Winform C# cơ bản kèm ví dụ cụ thể. Bài đầu tiên này mình xin phép giới thiệu với các bạn những thứ cơ bản nhất về Winform C#, và nó khác gì so với lập trình trên Console.
Chúng ta sẽ tìm hiểu 3 đặc điểm hướng đối tượng của nó





THUỘC TÍNH CỦA ĐỐI TƯỢNG

       Ở ngoài thực tế, thuộc tính là những đặc điểm của sự vật.
       Ví dụ: cô kia chân: dài, dáng: cao, da: trắng. Anh kia mũi: thấp, tóc: ngắn...v...v...
       Đối với Console App, thì thuộc tính là các biến kiểu private, nằm trong một Class và chúng ta hay dùng phương thức get - set để lấy giá trị cho nó. 
       Còn trong lập trình Winform C# thì thuộc tính là những đặc điểm - tính năng bên ngoài và bên trong của một đối tượng (Form, Control, Container,...).
       Dưới đây là bảng các thuộc tính giống nhau của các Control trong C#
    Thuộc tính thường dùng trong C# - Winform
       
        Các bạn có thể thay đổi thuộc tính ở khung Properties trong lúc thiết kế Form, và cũng có thể thay đổi thuộc tính bằng code.

    Ví dụ: một textBox cơ bản vừa được kéo ra từ Toolbox. Các bạn thực hiện các dòng code sau ở hàm dựng của Form (hàm này sẽ chạy đầu tiên khi Form load lên)
    public YourForm()
    {
    InitializeComponent();

    //Code thay đổi thuộc tính của textBox1
    textBox1.BackColor = Color.LightYellow;
    textBox1.Text = "Lập trình cuộc sống";
    textBox1.TextAlign = HorizontalAlignment.Center;
    textBox1.ForeColor = Color.Blue;

    //Code thay đổi thuộc tính button1
    button1.Text = "IceTea Việt";
    button1.BackColor = Color.LightGreen;
    button1.FlatStyle = FlatStyle.Flat;
    button1.Enabled = false;
    }

    Kết quả sẽ là:


    PHƯƠNG THỨC CỦA ĐỐI TƯỢNG

         Trong lập trình trên Console ta hay gọi một phương thức là "hàm". Nhưng nếu lập trình C# hướng đối tượng thì hàm đặt trong class được gọi là phương thức. Mỗi class dù là class thường hay là Form, hay bất cứ Control nào khác đều có phương thức riêng cho mình
         Chúng ta gọi (call) đến phương thức của nó, giống như là ra lệnh cho nó phải làm một hành động gì đó vậy. Cũng giông như chúng ta khi còn nhỏ ai cũng có phương thức là Học(), Ăn(), QuétNhà(),...vậy :D
      Phương thức thường dùng trong C# - Winform


      SỰ KIỆN CỦA CÁC ĐỐI TƯỢNG

           Sự kiện là gì?
           Ta cứ tưởng tượng như chúng ta nhảy, thì đó là sự kiện ghi nhận hành động nhảy. Con chim hót thì sự kiện là chim hót.
           Vậy trong winform C# theo đúng nghĩa đen nó, sự kiện là một hành động gì đó vừa được xảy ra. Ví dụ người dùng ấn vào một nút nào đó, thì đó là sự kiện Click, ấn phím nào đó thì là sự kiên KeyPress.

           Làm sao máy tính nhận biết được sự kiện?
           Nếu ở ngoài đời chúng ta nhìn bằng mắt, nghe bằng tai biết được sự kiện hành động đó đang diễn ra thì trong C# hỗ trợ cho chúng ta một bộ lắng nghe sự kiện EventHandler. Các bạn cứ hiểu đơn giản là nó sẽ dựa trên cơ chế ngắt của vi xử lý gửi và nhận các tín hiệu và trả về các phương thức cho bạn. Nếu tìm hiểu sâu ta sẽ đụng tới Delegate - thứ mà mình vẫn còn đang mơ hồ >.< Nếu sau này có điều kiện mình sẽ viết một bài sâu hơn để hướng dẫn các bạn với Event, Delegate và cách Custom sự kiện.
        Các sự kiện thường dùng
            
            Vậy thì cần sự kiện để làm gì?
            Các bạn cứ tưởng tượng sự kiện như là một câu lệnh điều kiện if, nếu xảy ra sự kiện gì đó - thì ta sẽ xử lý để làm việc gì đó. Ví dụ như nếu Click chuột vào button đăng nhập trong game, thì nó sẽ xử lý kiểm tra tài khoản và mật khẩu, và sẽ xuất ra thông báo đăng nhập thành công chẳng hạn... Cứ lấy ví dụ bằng game cho dễ hình dung :D

            Sự kiện được khởi chạy khi nào?
            - Người dùng có thể khởi chạy các event bằng cách tương tác với chương trình của bạn. Ví dụ: Việc nhấp một button sẽ khởi chạy event Click của button
            - Các control có thể tự khởi chạy event riêng của mình. Ví dụ: control Timer sẽ kích hoạt event Tick của nó vào các khoảng thời gian đều đặn
            - Hệ điều hành (bất kỳ phiên bản nào của Windows) có thể khởi chạy các event
            - Bạn có thể khởi chạy các event bằng cách gọi chúng giống như gọi một phương thức 

            Làm cách nào để thêm một sự kiện cho Form hoặc control?
            Các bạn có thể thêm sự kiện bằng code, hoặc click đúp vào control muốn thêm để thêm sự kiện thường dùng nhất của nó, hoặc đúp chuột vào tên sự kiện cần thêm  trong khung sự kiện của ô Properties khi đang thiết kế form. Khi đó Visual Studio sẽ tự động generate code cho sự kiện đó vào <YourForm>.Designer.cs và gọi hàm đó vào class <YourForm> để các bạn thiết lập xử lý sự kiện
        Thêm sự kiện bằng khung Properties

        Vd: khi bạn đúp chuột vào sự kiện Click của button1 thì VS sẽ tự động tạo những đoạn code sau

        //
        // Trong Yourform.Designer.cs

        this.button1.Click += new System.EventHandler(this.button1_Click);

        // Trong Class của YourForm nó sẽ gọi hàm để định nghĩa và xử lý cho sự kiện click trên

        private void button1_Click(object sender, EventArgs e)
        {
        //Các bạn sẽ cần gõ code xử lý sự kiện ở đây
        }

        Các bạn có thể thêm/xóa sự kiện bằng tay theo cú pháp
        //

        //Thêm vào Yourform.Designer.cs hay trong hàm dựng của Form đều được
        this.Control.Sựkiện += new System.EventHandler(this.tên hàm sự kiện);


        //và gọi hàm để định nghĩa cho sự kiện
        private void tên hàm sự kiện(object sender, XEventArgs e)
        {
        //Trong đó X có thế là Mouse, hoặc Graphics, hoặc có thể bỏ trống tùy loại sự kiện
        }


        //Xóa event vừa tạo
        this.Control.Sựkiện -= new System.EventHandler(this.tên hàm sự kiện);

        //

        Hoặc các bạn cũng có thể gõ this.<control>.<Sự kiện> += rồi tab 2 lần để VS tự động generate sự kiện và hàm cho bạn nếu bạn ko biết rõ nó là EventArgs hay MouseEventArgs,.... Rất dễ đúng không các bạn :D

        Cuối cùng mình xin gửi đến các bạn các đoạn code mẫu sau để đoán kết quả nó sau khi chạy nhé :D

        //Trong Form.Designer.cs
        private void InitializeComponent()
        {
        this.textBox1 = new System.Windows.Forms.TextBox();
        this.button1 = new System.Windows.Forms.Button();
        this.SuspendLayout();
        //
        // textBox1
        //
        this.textBox1.Location = new System.Drawing.Point(156, 223);
        this.textBox1.Name = "textBox1";
        this.textBox1.Size = new System.Drawing.Size(183, 20);
        this.textBox1.TabIndex = 1;
        this.textBox1.BackColor = Color.LightYellow;
        this.textBox1.Text = "Lập trình cuộc sống";
        this.textBox1.TextAlign = HorizontalAlignment.Center;
        this.textBox1.Visible = false;
        //
        // button1
        //
        this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
        this.button1.Location = new System.Drawing.Point(210, 184);
        this.button1.Name = "button1";
        this.button1.Size = new System.Drawing.Size(75, 23);
        this.button1.TabIndex = 3;
        this.button1.Text = "TestButton";
        this.button1.UseVisualStyleBackColor = true;
        this.button1.Click += new System.EventHandler(this.button1_Click);
        //
        // YourForm
        //
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(625, 467);
        this.Controls.Add(this.button1);
        this.Controls.Add(this.textBox1);
        this.Name = "YourForm";
        this.Text = "Form1";
        this.ResumeLayout(false);
        this.PerformLayout();
        }

        private System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.Button button1;


        //Trong Form Class của Form.cs
        private void button1_Click(object sender, EventArgs e)
        {
        MessageBox.Show("Cùng học MessageBox với IceTea Việt", "Thông báo");
        }

        Chúc các bạn học tốt, chào các bạn và hẹn gặp lại!


        14 nhận xét:

        1. Cập nhật link vào nhà cái B52 mới nhất không bị chặn. Hướng dẫn tải app B52 cho điện thoại iOS và Android mượt mà, không giật lag. Khám phá thế giới cá cược casino trực tuyến đỉnh cao.
          Website: https://b52z.org/
          Email: support@b52club.net
          Số điện thoại: 0936 525 252
          Địa chỉ: 236 Lê Thánh Tôn, Phường Bến Thành, Hồ Chí Minh 70000, Vietnam

          Trả lờiXóa
        2. 123bet là lựa chọn hàng đầu cho người yêu thích cá cược thể thao và casino trực tuyến. Hệ thống bảo mật cao, hỗ trợ 24/7 cùng nhiều chương trình khuyến mãi hấp dẫn mỗi tuần.
          Website: https://123bett.io/
          Địa chỉ: 86-549 Đ. Vĩnh Khánh, Khánh Hội, Hồ Chí Minh, Vietnam
          Điện thoại: 0938493847
          Email: 123bettio@gmail.com
          Hashtag: #123bet #123betoi #game123bet #trangchu123bet #link123bet

          Trả lờiXóa
        3. Sunwin mang đến không gian cá cược đẳng cấp quốc tế. Khám phá các sảnh bài live casino casino sống động, tỷ lệ ăn thưởng cao nhất thị trường và dịch vụ hỗ trợ khách hàng chuyên nghiệp 24/7.
          Website: https://sun-win.eu.com/
          Địa chỉ: 1/Đội Cấn/43 343, Tổ 5A, Ngọc Hà, Hà Nội, Vietnam
          Điện thoại: 0937836878
          Email: sunwineucom@gmail.com
          Hashtag: #sunwin #taigamesunwin #sunwineucom #linksunwin #trangchusunwin

          Trả lờiXóa
        4. Hitclub là cổng game bài đổi thưởng đỉnh cao châu Á. Đăng ký tham gia ngay hôm nay để nhận code tân thủ cực giá trị và trải nghiệm kho game slot, tài xỉu xanh chín, bảo mật tuyệt đối.
          Website: https://hitclub1.dev/
          Địa chỉ: 2 Trần Khắc Chân, Tân Định, Hồ Chí Minh, Vietnam
          Điện thoại: 0938938293
          Email: hitclub1dev@gmail.com
          Hashtag: #hitclub #hitclub1dev #taiapphitclub #apphitclub #trangchuhitclub

          Trả lờiXóa
        5. game bai doi thuong uy tín 2026. Cập nhật link tải chính thức iOS/Android của 10+ cổng game xanh chín. Hệ thống bảo mật thông tin, rút tiền qua ngân hàng, ví điện tử cực nhanh trong 5 phút. Xem ngay!
          Website: https://gamebaidoithuong88.dev/
          Địa chỉ: Hẻm 263 Thạch Lam, Phú Thạnh, Hồ Chí Minh, Vietnam
          Điện thoại: 0937839489
          Email: gamebaidoithuong88dev@gmail.com
          Hashtag: #gamebaidoithuong #gamebaidoithuong88dev #topgamebaidoithuong #topgamedoithuong

          Trả lờiXóa
        6. go88 khẳng định vị thế cổng game bài đổi thưởng đẳng cấp quốc tế. Hệ thống bảo mật tối tân, nạp rút siêu tốc 1:1 và dịch vụ hỗ trợ khách hàng 24/7 mang lại trải nghiệm giải trí đỉnh cao.
          Website: https://go88bet.in.net/
          Địa chỉ: 30 Tân Sơn Nhì, Hồ Chí Minh, Vietnam
          Điện thoại: 0947 379 830
          Email: go88betinnet@gmail.com
          Hashtag: #go88 #go88betinnet #linktaigo88 #trangchugo88 #taigo88

          Trả lờiXóa
        7. sun win Play cập nhật link tải app Sunwin cho Android và iOS mới nhất. Sân chơi cá cược đẳng cấp hoàng gia với hệ thống bảo mật tuyệt đối, nạp rút 1:1 nhanh chóng trong 3 phút.
          Website: https://sunwin20.health/
          Địa chỉ: 299 Phan Bội Châu, Bàn Thạch, Đà Nẵng, Việt Nam
          Điện thoại: 0901 031 205
          Email: contact@sunwin20.health
          Hashtag: #sunwin #conggamesunwin #conggamedoithuongsunwin #sunwin20health #sunwin20 #sunwincom #taisunwin

          Trả lờiXóa
        8. Cập nhật link vào Luck8 chính thức mới nhất không bị chặn. Truy cập Luck8 để tham gia cá độ thể thao, trực tuyến mượt mà, tốc độ cao cùng hệ thống nạp rút tiền tự động siêu nhanh trong 2 phút.
          Website: https://luck8.contact/
          Địa chỉ: 26 Đường số 1, Khu dân cư Trung Sơn, Bình Hưng, Hồ Chí Minh, Việt Nam
          Điện thoại: 0985512678
          Email: luck8contact@gmail.com
          Hashtag: #Luck8 #luck8contact #tailuck8

          Trả lờiXóa
        9. 789win cập nhật liên kết truy cập an toàn, mượt mà trên cả điện thoại và máy tính. Khám phá hàng ngàn trò chơi cá cược xanh chín, minh bạch cùng dịch vụ hỗ trợ khách hàng chuyên nghiệp 24/7.
          Website: https://789win-s1.com/
          Địa chỉ: 201 Lê Văn Duyệt, Tân Định, Hồ Chí Minh 700000, Vietnam
          Điện thoại: 0947 893 900
          Email: 789wins1com@gmail.com
          Hashtag: #789win #789wins1com #trangchu789win #conggame789win

          Trả lờiXóa
        10. EE88 cung cấp đường link truy cập chính thức không lo bị chặn. Trải nghiệm sảnh casino live đỉnh cao, cá cược thể thao uy tín và hàng ngàn quà tặng giá trị dành cho thành viên mới của EE88.
          Website: https://ee88wl.com/
          Địa chỉ: 106 Nguyễn An Ninh, TT. Cần Giuộc, Cần Giuộc, Long An, Việt Nam
          Điện thoại: 0986 868 386
          Email: ee88wlcom@gmail.com
          Hashtag: #ee88 #ee_88 #Tai_ee88 #Trang_chu_ee88 #ee88wl

          Trả lờiXóa
        11. Đăng ký Thabet chính thức ngay để nhận code trải nghiệm 100K. Sân chơi cá cược an toàn, bảo mật tuyệt đối với giao diện hiện đại, hỗ trợ người chơi 24/7. Click tham gia Thabet ngay!
          Website: https://thabet.city/
          Địa chỉ: 11 Huỳnh Đình Hai, Phường 14, Bình Thạnh, Tp. Hồ Chí Minh, Việt Nam
          Điện thoại: 0942 675 381
          Email: hotro@thabet.city
          Hashtag: #thabet #nhacaithabet #thabetcasino #trangchuthabet #dangkythabet #thabetvip #thabetonline #linkthabet #thabetuytin #thabetbest

          Trả lờiXóa
        12. HITCLUB cung cấp link tải ứng dụng chính thức cho iOS và Android. Khám phá không gian giải trí đẳng cấp với hệ thống bảo mật hiện đại, giao diện mượt mà cùng dịch vụ hỗ trợ khách hàng chuyên nghiệp 24/7.
          Website: https://hitclubb.actor/
          Địa chỉ: 72/1 D. Vạn Hạnh 3, Bà Điểm, Hồ Chí Minh, Vietnam
          Điện thoại: 0938 802 890
          Email: rikvipnavy@gmail.com
          Hashtag: #hitclub #hitclubactor #trangchuhitclub #hitclub #conggamehitclub #taihitclub

          Trả lờiXóa
        13. Go88 - Link tải app chính thức cập nhật mới nhất, giúp người chơi dễ dàng truy cập và trải nghiệm mượt mà trên mọi thiết bị. Cổng game cam kết bảo vệ thông tin cá nhân tối đa, giao dịch minh bạch 1:1 không qua trung gian. Đăng ký tài khoản ngay hôm nay để nhận trọn bộ quà tặng khởi nghiệp cực giá trị.
          Website: https://go88s.it.com/
          Địa chỉ: 237 Đ. Đặng Nguyên Cẩn, Phường 14, Phú Lâm, Hồ Chí Minh, Việt Nam
          Điện thoại: 0968 663 965
          Email: go88sitcom@gmail.com
          Hashtag: #go88 #go88sitcom #trangchugo88 #conggamego88 #taigamego88

          Trả lờiXóa
        14. Kèo trực tuyến tổng hợp thông tin tỷ lệ đặt cược chi tiết cho từng trận đấu đang diễn ra. Với tốc độ cập nhật dữ liệu nhanh chóng, giao diện thân thiện và dễ tra cứu, đây là nền tảng tin cậy giúp bạn theo dõi biến động bảng kèo và cập nhật tình hình bóng đá một cách chính xác.
          Website: https://keotructuyen.uk.com/
          Địa chỉ: 52 P. Nguyễn Hy Quang, Chợ Dừa, Đống Đa, Hà Nội, Việt Nam
          Điện thoại: 0972 948 004
          Email: keotructuyen.uk.com@gmail.com
          Hashtag: #Keotructuyen #Tylekeo #Keonhacai #Soikeo #TyLeBongDa

          Trả lờiXóa

        Categories

        Sample Text

        Được tạo bởi Blogger.

        Must Read

        Biểu mẫu liên hệ

        Tên

        Email *

        Thông báo *

        Popular Posts

        Video

        Popular Posts

        Our Facebook Page