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

Đề tài: sendkeys

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

    Mặc định sendkeys

    Giả sử em có 1 cái form. Em muốn khi bấm phím enter hay phím gì đó thì form sẻ đóng lại thì e phải làm như thế nào( tương tự như khi ta bấm phím U khi muốn tắt máy trong windows).

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    bạn bắt event KeyPress của form.

    đây là code của nó.

    Code:
    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
            {
                
                if (e.KeyChar == (char)Keys.Enter)
                {
                    MessageBox.Show("you press Enter key");
                }
                
            }

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

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    bạn bắt event KeyPress của form.

    đây là code của nó.

    Code:
    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
            {
                
                if (e.KeyChar == (char)Keys.Enter)
                {
                    MessageBox.Show("you press Enter key");
                }
                
            }
    Mình đã làm như thế mà nó đâu có chạy đâu bạn.

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn phải set thuộc tính KeyPreview của Form1 bằng true thì nó mới bắt phím được.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Bạn phải set thuộc tính KeyPreview của Form1 bằng true thì nó mới bắt phím được.
    Đã làm đc với các phím thông thường. Nhưng với các phím chức năng (như enter,F1,F2.........) vẫn chưa làm đc. Các bạn giúp mình với nha.

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định sendkeys

    Phím enter vẫn bắt được bằng sự kiện KeyPress. Còn bạn muốn bắt các phím chức năng thì phải bắt sự kiện KeyDown.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    08 2008
    Bài viết
    7

    bạn nên chèn thêm đoạn code sau vào form
    Visual C# Code:
    1. protected override bool ProcessCmdKey(ref Message msg, Keys keyData)   
    2.      {
    3.         const int WM_KEYDOWN = 0x100;
    4.         const int WM_SYSKEYDOWN = 0x104;
    5.  
    6.         if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
    7.         {
    8.           switch(keyData)
    9.           {
    10.              case Keys.F1:
    11.                                        //Code cho F1
    12.                                            break;
    13.      
    14.              case Keys.F11:
    15.                 //Code  cho F11
    16.                 break;
    17.                
    18.             case Keys.Escape:
    19.               // Code cho phim Esc
    20.               break;
    21.              
    22.              
    23.              case Keys.Tab:
    24.                 // Tab key
    25.                 break;
    26.  
    27.              case Keys.Control | Keys.M:
    28.                 // Ctrl + M
    29.                 break;
    30.                                        case Keys.Alt | Keys.X:
    31.                                           // Alt + X
    32.                 break;
    33.           }            
    34.         }
    35.  
    36.         return base.ProcessCmdKey(ref msg,keyData);
    37.      }
    Hi vọng đúng như bạn muốn

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

    đã làm đc. Thank for all.

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

    Trích dẫn Nguyên bản được gửi bởi hungdlbk Xem bài viết
    bạn nên chèn thêm đoạn code sau vào form
    Visual C# Code:
    1. protected override bool ProcessCmdKey(ref Message msg, Keys keyData)   
    2.      {
    3.         const int WM_KEYDOWN = 0x100;
    4.         const int WM_SYSKEYDOWN = 0x104;
    5.  
    6.         if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
    7.         {
    8.           switch(keyData)
    9.           {
    10.              case Keys.F1:
    11.                                        //Code cho F1
    12.                                            break;
    13.      
    14.              case Keys.F11:
    15.                 //Code  cho F11
    16.                 break;
    17.                
    18.             case Keys.Escape:
    19.               // Code cho phim Esc
    20.               break;
    21.              
    22.              
    23.              case Keys.Tab:
    24.                 // Tab key
    25.                 break;
    26.  
    27.              case Keys.Control | Keys.M:
    28.                 // Ctrl + M
    29.                 break;
    30.                                        case Keys.Alt | Keys.X:
    31.                                           // Alt + X
    32.                 break;
    33.           }            
    34.         }
    35.  
    36.         return base.ProcessCmdKey(ref msg,keyData);
    37.      }
    Hi vọng đúng như bạn muốn
    Thanks đoạn code của bạn, cho mình hỏi xíu giả sử mình có nhiều form hong lẽ ở mỗi form mình đều chèn đoạn code

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

  1. Làm sao để dùng hàm SendKeys.SendWait phím Fn của Laptop
    Gửi bởi taka_12x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 20-10-2012, 12:06 AM
  2. ADO.NET Từ khóa của sự kiện mouseleft Click được sử dụng trong hàm sendkeys
    Gửi bởi nguoirung1.6 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 10-07-2011, 10:34 PM
  3. Sử dụng sendkeys như thế nào?
    Gửi bởi tuanvu199x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 16-11-2010, 12:17 PM
  4. SendKeys cho WebBrowser trong C#
    Gửi bởi thehai009 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 20-03-2009, 04:06 PM
  5. tìm hiểu về sendkeys
    Gửi bởi ngminhduong trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 17-08-2008, 08:32 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