Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Phóng to, thu nhỏ BUTTON

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Smile Phóng to, thu nhỏ BUTTON

    Tớ mới tập tành làm quen với C#, đang có ví dụ này xin ý kiến các bạn :

    Tớ có 1 button, tớ đã viết sự kiện MouseEnter để khi rê chuột qua button đó thì nó phóng to, MouseLeave thu nhỏ như ban đầu.

    Nhưng bây giờ mà có khoảng 10 button như vậy, thì tớ phải viết lại 10 lần MouseEnter và MouseLeave vậy à :( ?

    Source của tớ đây, hơi rối rắm vì mới làm quen :

    Code:
    // Khúc đầu ko cần quan tâm
    private void den_Click(object sender, EventArgs e)
            {
                tong = tong + gia_den;
                tongtien.Text = tong.ToString();
                tiencaphe = tiencaphe + gia_den;
                caphe.Text = tiencaphe.ToString();
                tt = 1;
            }
    // Bắt đầu từ đây
    private void den_MouseEnter(object sender, EventArgs e)
            {
                // Lưu lại tọa độ, chiều dài, rộng của button để lát khôi phục lại vị trí cũ
                tdx = den.Location.X; 
                tdy = den.Location.Y;
                cd = den.Size.Width;
                cr = den.Size.Height;
                mau = den.BackColor;
                
                // Phóng to BUTTON
                den.Location = new System.Drawing.Point(tdx-3, tdy-3); 
                den.Size = new System.Drawing.Size(cd+6, cr+6); // Phóng to ra 6 pixel mỗi cạnh
                den.BackColor = System.Drawing.Color.DarkSlateGray;
                den.Text = gia_den.ToString();
    
            }
    
    private void den_MouseLeave(object sender, EventArgs e)
            {
                // Dời cái button lại như ban đầu
                den.Text = "ĐEN";
                den.Location = new System.Drawing.Point(tdx, tdy);
                den.Size = new System.Drawing.Size(cd, cr);
                den.BackColor = System.Drawing.Color.SlateGray;        
            }

  2. #2
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    từng sự kiện bạn viết chung xài cho tất cả các btn được luôn, ép kiểu về sender, rùi xu ly là được
    Đã được chỉnh sửa lần cuối bởi kenturo : 30-01-2012 lúc 06:41 PM.

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi kenturo Xem bài viết
    từng sự kiện bạn viết chung xài cho tất cả các btn được luôn, ép kiểu về sender, rùi switch....case theo id của btn là được
    sender là kiểu gì vậy bạn, giải thích cho mình với được ko ?

    Bạn có ví dụ mẫu nào tương tự như thế ko >_< ?

    Tại của mình còn liên quan đến tọa độ của từng button, chẳng nhẽ lát lại truyền tham số cho từng cái :(, tự dưng thấy càng rối rắm >_<

  4. #4
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    sender là kiểu object, thường dùng để bắt sự kiện sinh ra của 1 control.
    Visual C# Code:
    1. protected void AllButton_Click(object sender, EventArgs e)
    2. {
    3.     Button btn = (Button)sender;
    4.     switch(btn.id)
    5.     {
    6.        case "Button 1":
    7.             // xử lý tiến trình nào đó
    8.             break;
    9.        case "Button 2":
    10.             // xử lý tiến trình nào đó
    11.             break;
    12.        case "Button n +1 ":
    13.             // xử lý tiến trình nào đó
    14.             break;
    15.     }
    16. }

  5. #5
    Ngày gia nhập
    08 2010
    Bài viết
    125

    ép kiểu ở sender có nghĩa là như thế này (Button) sender; bạn à ở đây bạn kenturo muốn dùng ép kiểu để viết 1 lần dùng nhiều lần thôi

  6. #6
    Ngày gia nhập
    03 2012
    Nơi ở
    Quảng Nam
    Bài viết
    23

    Mặc định Phóng to, thu nhỏ BUTTON

    Trích dẫn Nguyên bản được gửi bởi kenturo Xem bài viết
    sender là kiểu object, thường dùng để bắt sự kiện sinh ra của 1 control.
    Visual C# Code:
    1. protected void AllButton_Click(object sender, EventArgs e)
    2. {
    3.     Button btn = (Button)sender;
    4.     switch(btn.id)
    5.     {
    6.        case "Button 1":
    7.             // xử lý tiến trình nào đó
    8.             break;
    9.        case "Button 2":
    10.             // xử lý tiến trình nào đó
    11.             break;
    12.        case "Button n +1 ":
    13.             // xử lý tiến trình nào đó
    14.             break;
    15.     }
    16. }
    cho mình hỏi là nếu có mấy trăm cái button thi cũng case cho mấy trăm cái vậy ak`

  7. #7
    Ngày gia nhập
    10 2010
    Nơi ở
    Biên Hòa
    Bài viết
    562

    uhm, mấy trăm cái case trong 1 method hay mấy trăm cái method cho từng event, tùy bạn chọn

  8. #8
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Vấn đề của bạn chơi kiểu này là được thui. Bao nhiêu buttton cũng được. Nếu có để trong groupbox/panel... thì duyệt control theo kiểu đệ quy nhé. Ở đây có bài rồi nên t ko làm lại nữa.
    Visual C# Code:
    1.  public partial class Form1 : Form
    2.     {
    3.         public Form1()
    4.         {
    5.             InitializeComponent();
    6.             SetEvent();
    7.         }
    8.         private void SetEvent()
    9.         {
    10.             foreach(Control ctrl in this.Controls)
    11.                 if (ctrl is Button)
    12.                 {
    13.                     Button btn = (Button)ctrl;
    14.                     btn.MaximumSize = new Size(btn.Size.Width + 10, btn.Size.Height + 10);
    15.                     btn.MinimumSize = btn.Size;
    16.                     btn.MouseHover += new EventHandler(MouseHover);
    17.                     btn.MouseLeave += new EventHandler(MouseLeave);
    18.                 }
    19.         }
    20.         private void MouseHover(object sender, EventArgs e)
    21.         {
    22.             Button btn = (Button)sender;
    23.             btn.Size = btn.MaximumSize;
    24.         }
    25.  
    26.         private void MouseLeave(object sender, EventArgs e)
    27.         {
    28.             Button btn = (Button)sender;
    29.             btn.Size = btn.MinimumSize;
    30.         }
    31.     }
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

Các đề tài tương tự

  1. gọi sự kiện click của button trong code behind dùng button html
    Gửi bởi teodainhan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 02-09-2013, 02:15 PM
  2. Phóng to Form các textbox, button... phóng to theo. Xử lý như thế nào?
    Gửi bởi samjutom_9x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 11-07-2012, 08:34 AM
  3. Làm sao để phóng to form mà thì textbox phóng to theo?
    Gửi bởi nhoccon.uit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 19-03-2012, 04:52 PM
  4. Tạo button trên datagridview để xóa dòng bằng click vào button?
    Gửi bởi phuocit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 14-11-2011, 09:30 AM
  5. Tự động lấy kích thước khi nhấn button phóng to thu nhỏ?
    Gửi bởi pthntmt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 09-07-2011, 09:40 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn