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: C#: Làm sao giả lập các event của hệ thống?

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    79

    Mặc định C#: Làm sao giả lập các event của hệ thống?

    Với các event có sẵn như Form_Load, button click, mouse hover,.. mình chỉ có thể đợi sự kiện đó xảy ra, còn làm sao dùng code để tạo sự kiện đó xảy ra?

    Mình không muốn định nghĩa ra một event mới rồi sử dụng, mà muốn giả lập các event đã có sẵn của hệ thống, tức là dùng các event của C# có sẵn, và chỉ dùng code để làm xuất hiện sự kiện đó. Xin hỏi phải làm sao?

    Hoặc là trong một chương trình mình thấy có một đoạn code được thực hiện khi có một event, mình muốn giả lập event đó thì phải làm sao?
    void PipeListSelectedIndexChanged(object sender, System.EventArgs e)
    {
    if (pipesListView.SelectedItems.Count <= 0 )
    return;
    int Index = pipesListView.SelectedItems[0].Index;
    if (iSelectedPipeIndex == -1 || iSelectedPipeIndex != Index)
    {
    iSelectedPipeIndex = Index;
    if (ParentForm.GetActiveTab() == this)
    ParentForm.UpdateButtons();
    }
    }
    Đã được chỉnh sửa lần cuối bởi voicewithin : 24-11-2010 lúc 11:39 PM.

  2. #2
    Ngày gia nhập
    04 2010
    Nơi ở
    Trên hành tinh thứ ba tính từ Mặt trời
    Bài viết
    202

    Dùng code để tạo sự kiện thì nó đâu phải sự kiện. Trừ khi chính bạn là người tạo ra sự kiện đó thì bạn có toàn quyền quyết định sự kiện nào đó sẽ được gọi khi nào...
    Microsoft Student Partner
    University of Information Technology - VNUHCM
    Visit my blog: My power is my mind

  3. #3
    Ngày gia nhập
    09 2010
    Nơi ở
    lầu xanh-Hà Nội
    Bài viết
    58

    Giả lập event là sao đây ạ???
    Anh bạn dãi dầu không code nữa.
    Gục lên laptop bỏ quên đời!

  4. #4
    Ngày gia nhập
    02 2011
    Bài viết
    156

    Mình cũng đang tìm hiểu cái này, bạn coi code này nha, đây là sự kiện bật của bóng đèn và tivi
    Visual C# Code:
    1. public class MyEventArgs : EventArgs
    2.     {
    3.         public bool tt = false;
    4.         public MyEventArgs(bool state)
    5.         {
    6.             tt = state;
    7.         }
    8.     }
    9.     public class CongTac
    10.     {
    11.         bool state = false;
    12.         public event EventHandler bat;
    13.         public void OnBat()
    14.         {
    15.             if (bat!=null)
    16.             {
    17.                 bat(null, new MyEventArgs(state));
    18.             }
    19.         }
    20.         public void DieuKhien()
    21.         {
    22.             state = state ? true : false;
    23.             OnBat();
    24.         }
    25.     }
    26.     public class BongDen
    27.     {
    28.         CongTac c;
    29.         public BongDen(CongTac ct)
    30.         {
    31.             c = ct;
    32.             c.bat += new EventHandler(c_bat);
    33.         }
    34.         void c_bat(object sender, EventArgs e)
    35.         {
    36.             MyEventArgs arg = e as MyEventArgs;
    37.             if (arg.tt)
    38.             {
    39.                 Console.WriteLine("Den bat");
    40.             }
    41.             else
    42.             {
    43.                 Console.WriteLine("Den tat");
    44.             }
    45.         }
    46.     }
    47.     public class TiVi
    48.     {
    49.         CongTac c;
    50.         public TiVi(CongTac ct)
    51.         {
    52.             c = ct;
    53.             c.bat += new EventHandler(c_bat);
    54.         }
    55.         void c_bat(object sender, EventArgs e)
    56.         {
    57.             MyEventArgs arg = e as MyEventArgs;
    58.             if (arg.tt)
    59.             {
    60.                 Console.WriteLine("trang thai true");
    61.             }
    62.             else
    63.             {
    64.                 Console.WriteLine("trang thai false");
    65.             }
    66.         }
    67.     }
    68.     class A
    69.     {
    70.         public void Test()
    71.         {
    72.             Console.WriteLine("Test A");
    73.         }
    74.         public static void TestS()
    75.         {
    76.             Console.WriteLine("Test static");
    77.         }
    78.     }
    79.     class Program
    80.     {
    81.         static void Main(string[] args)
    82.         {
    83.             A.TestS();
    84.             A a = new A();
    85.             a.Test();
    86.             CongTac ct1 = new CongTac();
    87.             ct1.OnBat();
    88.             //TiVi tv = new TiVi();
    89.             Console.ReadLine();
    90.         }
    91.     }

  5. #5
    Ngày gia nhập
    05 2011
    Nơi ở
    Hà Nội
    Bài viết
    39

    Trích dẫn Nguyên bản được gửi bởi xuanchien Xem bài viết
    Dùng code để tạo sự kiện thì nó đâu phải sự kiện. Trừ khi chính bạn là người tạo ra sự kiện đó thì bạn có toàn quyền quyết định sự kiện nào đó sẽ được gọi khi nào...
    Ý mình là muốn. Viết sự kiện click cho button chẳng hạn
    Mình không nhấn đúp vào button đó cũng như không gọi sự kiện click của nó trong properties
    Mà mình muốn viết luôn code

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Mặc định C#: Làm sao giả lập các event của hệ thống?

    VÍ dụ Form click nhé
    voicewithin:Ý bạn là không cần click chuột, vẫn thực hiện hàm sử lý Form click?

    Các phương thức xử lý sự kiện trong .net cũng chỉ là các phương thức thôi. bạn có thể gọi nó ở bất cứ đâu. chỉ cần truyền đối số thích hợp thôi.
    Ý mình là muốn. Viết sự kiện click cho button chẳng hạn
    Mình không nhấn đúp vào button đó cũng như không gọi sự kiện click của nó trong properties
    Mà mình muốn viết luôn code
    Thé thì bạn tham khảo trong tệp desginer, có nhiều thứ trong đó lắm.

  7. #7
    Ngày gia nhập
    04 2010
    Nơi ở
    Trên hành tinh thứ ba tính từ Mặt trời
    Bài viết
    202

    Bạn có thể gọi luôn cái phương thức xử lý cho sự kiện đó. Khi đó đối số thứ hai của phương thức xử lý sự kiện thường là null.
    Ví dụ mình có Button1 với phương thức xử lý Click như sau
    Visual C# Code:
    1. Button1_Click(object sender, EventArgs e)
    2. {
    3.       //làm gì trong này
    4. }

    Và mình có phương thức A, phương thức này có thể gọi hàm xử lý sự kiện của Button1
    Visual C# Code:
    1. {
    2.      Button1_Click(Button1, null); //gọi phương thức xử lý sự kiện Button1
    3. }

    Đối với Button click thì bạn còn có thể sử dụng phương thức PerformClick để thực hiện click một Button. Còn việc gọi luôn phương thức xử lý sự kiện như thế này là "không nên" và có thể đôi khi báo lỗi.
    Thân,
    Microsoft Student Partner
    University of Information Technology - VNUHCM
    Visit my blog: My power is my mind

  8. #8
    Ngày gia nhập
    05 2011
    Nơi ở
    Hà Nội
    Bài viết
    39

    Visual C# Code:
    1. Button1_Click(object sender, EventArgs e)
    2. {
    3.       //làm gì trong này
    4. }

    Cái này là bạn đã click vào button1 để viết sự kiện rồi sau đó bạn gọi cái sự kiện này ra.
    Mình muốn không kich vào mà viết luôn sự kiện click bằng code
    Nói 1 cách đơn giản thế này: Mình sẽ tạo một button bằng code rồi add nó lên sau đó bắt sự kiện click cho nó

  9. #9
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Cứ viết cái phương thức thực hiện tên là
    Visual C# Code:
    1. button1_Click(object sender, EventArgs e);
    Sau đó thì khởi tạo nút button1 thì thêm dòng dưới
    Visual C# Code:
    1. this.button1.Click += new System.EventHandler(this.button1_Click);

    Đúng ý chưa?

  10. #10
    Ngày gia nhập
    05 2011
    Nơi ở
    Hà Nội
    Bài viết
    39

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Cứ viết cái phương thức thực hiện tên là
    Visual C# Code:
    1. button1_Click(object sender, EventArgs e);
    Sau đó thì khởi tạo nút button1 thì thêm dòng dưới
    Visual C# Code:
    1. this.button1.Click += new System.EventHandler(this.button1_Click);

    Đúng ý chưa?
    Thanks cái. Đúng rồi. Nhưng còn cái EventHandler là sao, nó khác với EvenArgs như thế nào :d

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

  1. Khai giảng khóa đào tạo pr-event, nhân ngày 20/10 giảm giá 10-20% học phí
    Gửi bởi yeusukien99 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 28-09-2012, 09:57 AM
  2. Công ty event, Công ty sự kiện, Cho thuê thiết bị event
    Gửi bởi VMHGroup trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 18-11-2011, 10:30 AM
  3. công ty event - công ty sự kiện - cho thuê thiết bị event
    Gửi bởi VMHGroup trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 24-10-2011, 09:05 PM
  4. công ty event, công ty sự kiện, cho thuê thiết bị event Phú Tinh
    Gửi bởi VMHGroup trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 22-10-2011, 10:22 PM
  5. Event nào ưu tiên hơn event Leave
    Gửi bởi nobitawin trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 03-09-2009, 09:56 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