Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Làm sao để biết được Control đã bị clicked hay chưa?

  1. #1
    Ngày gia nhập
    06 2007
    Bài viết
    40

    Mặc định Làm sao để biết được Control đã bị clicked hay chưa?

    Làm sao để nhận biết được 1 Control(chẳng hạn loại Button) đã bị click hay chưa ? Thanks.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    hỏi lạ nhỉ dùng even mouseclick
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  3. #3
    Ngày gia nhập
    06 2007
    Bài viết
    40

    Mouseclick là method để thực hiện việc gì đó khi xảy ra sự kiện click chuột. đây không phải cái tớ cần.
    Nói thế này cho dễ hiểu :chẳng hạn tớ có 100 button. Bây giờ tớ click vào button thứ 40 trong dãy Button trên. Tớ muốn biết là button nào đã bị clicked để xử lý các nhiệm vụ tương ứng với nó.
    Nếu chỉ có 2,3 button thì nhiệm vụ đơn giản, lúc đó chỉ cần dùng mấy cái biến boolean cho mỗi button là xong. Khi đó button nào bị clicked, ta set cái biến bool đi với nó=true, các biến bool đi với các button còn lại ta set= false. Từ đó khi kiểm tra sự kiện liên quan đến button bị click, ta chỉ cần kiểm tra xem cái biến bool đi với nó được set=true hay chưa.
    -Vấn đề khi số button lớn thì thế nào(như 100 cái chẳng hạn), khi ấy pp trên ko hiệu quả lắm(vì cồng kềnh)
    Giá mà trong MSDN có method "bool button.Clicked"(thực tế ko có đâu nha) thì hay biết mấy, tiếc rằng tìm không thấy và ko có cái method nào tương tự nó.
    Ai đó có giải pháp nào không?

  4. #4
    Ngày gia nhập
    04 2007
    Bài viết
    4

    Bạn thử dùng chỉ 1 hàm xử lý chung cho tất cả các sự kiện của các button xem. Dùng thuộc tính name để phân biệt giữa các button. Ngoài ra, nếu cách xử lý cho từng button phức tạp thì chắc phải dùng đến kế thừa.
    Đã được chỉnh sửa lần cuối bởi kaka211 : 22-07-2007 lúc 07:26 PM.

  5. #5
    Ngày gia nhập
    07 2007
    Bài viết
    16

    cho dù có cái Clicked đấy thật thì bạn định xử lý trong event nào

  6. #6
    Ngày gia nhập
    06 2007
    Bài viết
    40

    Mặc định Làm sao để biết được Control đã bị clicked hay chưa?

    Thế này nhé, chẳng hạn tớ có một chương trình Paint đơn giản. Các button trên có các nhiệm vụ khác nhau: vẽ Line, vẽ Ellipse, vẽ Rectange, vẽ tự do, vẽ đa giác ....Có một hàm riêng để xử lý kiểu vẽ, nó sẽ dựa vào các cờ của các button trên để biết được user đang chọn kiểu vẽ nào. Có nghĩa là chỉ cần dùng 1 method để xử lý tất cả các kiểu vẽ , căn cứ vào cờ của các button.
    Vấn đề làm sao là xác định cái flag đó (=true/false)- khi mà số button ngày càng nhiều lên . (Khi 1 cờ được thiết lập true thì tất cả những cái còn lại =false)
    Đã được chỉnh sửa lần cuối bởi nampt : 23-07-2007 lúc 11:02 AM.

  7. #7
    Ngày gia nhập
    04 2007
    Bài viết
    4

    Nếu như theo cách xử lý của bạn ở trên thì dùng biến bool làm gì. Dùng một biến số nguyên id (id=1 vẽ line, id=2 vẽ ...)

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    HCM
    Bài viết
    62

    Bạn đặt ID của các button đó. Rồi dùng vòng lặp để find control đã bị click hay chưa.Ý tưởng của mình là vậy
    Geomatics

  9. #9
    Ngày gia nhập
    05 2007
    Bài viết
    55

    Trích dẫn Nguyên bản được gửi bởi abelegreen Xem bài viết
    Thế này nhé, chẳng hạn tớ có một chương trình Paint đơn giản. Các button trên có các nhiệm vụ khác nhau: vẽ Line, vẽ Ellipse, vẽ Rectange, vẽ tự do, vẽ đa giác ....Có một hàm riêng để xử lý kiểu vẽ, nó sẽ dựa vào các cờ của các button trên để biết được user đang chọn kiểu vẽ nào. Có nghĩa là chỉ cần dùng 1 method để xử lý tất cả các kiểu vẽ , căn cứ vào cờ của các button.
    Vấn đề làm sao là xác định cái flag đó (=true/false)- khi mà số button ngày càng nhiều lên . (Khi 1 cờ được thiết lập true thì tất cả những cái còn lại =false).
    Nếu vậy người ta không dùng button mà dùng radiobutton. Đặt thuộc tính gì gì đó là nó có vẻ giống button nhưng bản chất vẫn là radio.

  10. #10
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Em nghĩ khó khăn của tác giả ở đây là không phải ở chỗ không kiểm tra đựơc nút có bị ấn hay không mà là phải kiểm tra nhiều nút. Thông thường để kiểm tra một nút có bị ấn hay không ta sẽ đặt một biến bool trong event của nó, việc này làm bằng tay nên không khả thi với nhiều nút. Vì vậy giải pháp của em là tạo một event handler chung xử lý sự kiện click của tất cả các button, để nhận dạng các nút sẽ sử dụng thuộc tính Tag, trong đó lưu một giá trị định danh duy nhất. Giải pháp này em thấy cũng có nhiều anh đề cập tới ở trên rồi.
    Đây là mã lệnh
    PHP Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace 
    WindowsApplication4
    {
        public 
    partial class Form1 Form
        
    {
            public 
    Form1()
            {
                
    InitializeComponent();
            }

            private 
    void Form1_Load(object senderEventArgs e)
            {
                
    Button newbt;
                for (
    int i 1<= 5i++)
                {
                    
    newbt = new Button();
                    
    newbt.Tag i.ToString();
                    
    newbt.Text =i.ToString() ;
                    
    newbt.Width 50;
                    
    newbt.Location = new System.Drawing.Point(newbt.Width,0);
                    
    this.Controls.Add(newbt);
                    
    newbt.Click += new EventHandler(newbt_click);
                }
            }

            
    void newbt_click(object senderEventArgs e)
            {
                
                
    MessageBox.Show("Ban vua nhan vao button " + ((Button)sender).Text  ); 

            }
        }

    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. Có ai biết control này là gì ko?
    Gửi bởi trungtinhit trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 17-01-2014, 09:29 AM
  2. Làm sao biết control nào được chọn khi rê chuột vào
    Gửi bởi acount trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 19-09-2012, 08:18 AM
  3. User control bị biến dạng khi vào master page là do đâu?
    Gửi bởi zalai1992 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 26-07-2012, 05:21 PM
  4. Ai biết bắt các sự kiện của Mouse trên Control?
    Gửi bởi iamonlining trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 15-10-2009, 01:11 PM
  5. Làm mờ dần và biến mất một control trong lập trình C#?
    Gửi bởi trung trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 05-02-2009, 07:58 AM

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