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ố 12 kết quả

Đề tài: bắt sự kiện pressdown 2 phím cùng lúc

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

    Mặc định bắt sự kiện pressdown 2 phím cùng lúc

    bây giờ em muốn làm 1 picturebox sẽ di chuyển khi mình sử dụng phím arrow bất kỳ, làm cách nào để khi mình nhấn 2 phím arrow cùng 1 lúc thì nó sẽ đi chéo
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    switch (e.KeyCode)
    {
    case Keys.Left:
    pictureBox1.Location = new Point(pictureBox1.Location.X - 2, pictureBox1.Location.Y);
    break;
    case Keys.Right:
    pictureBox1.Location = new Point(pictureBox1.Location.X + 2, pictureBox1.Location.Y);
    break;
    case Keys.Down:
    pictureBox1.Location = new Point(pictureBox1.Location.X, pictureBox1.Location.Y + 2);
    break;
    case Keys.Up:
    pictureBox1.Location = new Point(pictureBox1.Location.X, pictureBox1.Location.Y - 2);
    break;
    default:
    break;
    }
    label1.Text = pictureBox1.Location.X.ToString() + ";" + pictureBox1.Location.Y.ToString();
    }

  2. #2
    Ngày gia nhập
    11 2012
    Nơi ở
    Ở nhà
    Bài viết
    180

    bạn muốn đi chéo thi bạn phải tính tỷ lệ x và y. Xem nến x tăng bao nhiêu thì y cũng phải tăng tương ứng với x sao cho nó đi chéo. Tương tự như thế với giảm.

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

    vấn đề là làm cách nào để nó bắt sự kiện ấn 2 phím cùng lúc

  4. #4
    Ngày gia nhập
    11 2012
    Nơi ở
    Ở nhà
    Bài viết
    180

    Trích dẫn Nguyên bản được gửi bởi Cruel Xem bài viết
    vấn đề là làm cách nào để nó bắt sự kiện ấn 2 phím cùng lúc
    như thế này là được 2 phím cùng 1 lúc này

    Code:
    if (e.KeyCode == Keys.Left && Keys.Down)
                {
                    pictureBox1_Click(sender, e);
                }
    trong Case của bạn thì thử thế này xem được k mình chưa thử.

    Code:
    case (Keys.Left && Keys.Down):
    pictureBox1.Location = new Point(pictureBox1.Location.X - 2, pictureBox1.Location.Y);
    break;
    Chúc bạn thành công

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

    Trích dẫn Nguyên bản được gửi bởi kenkentrang Xem bài viết
    như thế này là được 2 phím cùng 1 lúc này

    Code:
    if (e.KeyCode == Keys.Left && Keys.Down)
                {
                    pictureBox1_Click(sender, e);
                }
    trong Case của bạn thì thử thế này xem được k mình chưa thử.

    Code:
    case (Keys.Left && Keys.Down):
    pictureBox1.Location = new Point(pictureBox1.Location.X - 2, pictureBox1.Location.Y);
    break;
    Chúc bạn thành công
    Đã không biết thì thôi, đã nhắc lại còn nhắc sai.
    Đã test thử cái && của ông chưa mà nhắc thế :(
    đúng là thay dấu && = |
    Ví dụ:
    Visual C# Code:
    1. e.KeyCode == (Keys.Enter | Keys.Shift)

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

    Mặc định bắt sự kiện pressdown 2 phím cùng lúc

    Trích dẫn Nguyên bản được gửi bởi family2810 Xem bài viết
    Đã không biết thì thôi, đã nhắc lại còn nhắc sai.
    Đã test thử cái && của ông chưa mà nhắc thế :(
    đúng là thay dấu && = |
    Ví dụ:
    Visual C# Code:
    1. e.KeyCode == (Keys.Enter | Keys.Shift)
    cảm ơn nhưng 2 cách đó tui thử hết rồi, đều không được

  7. #7
    Ngày gia nhập
    11 2012
    Nơi ở
    Ở nhà
    Bài viết
    180

    Trích dẫn Nguyên bản được gửi bởi family2810 Xem bài viết
    Đã không biết thì thôi, đã nhắc lại còn nhắc sai.
    Đã test thử cái && của ông chưa mà nhắc thế :(
    đúng là thay dấu && = |
    Ví dụ:
    Visual C# Code:
    1. e.KeyCode == (Keys.Enter | Keys.Shift)
    sorry chủ thớt. Bạn kia nói mình thế à. chỉ là mình chỉ test với cách này nên cứ tưởng nó tuơng tự
    Code:
     private void F_main_KeyDown(object sender, KeyEventArgs e)
            {
               
                if (e.KeyCode == Keys.P && e.Control)
                {
                    pictureBox5_Click(sender, e);
                }
            }
    Mình đã thử cách này rồi được 100%. Không tin test thử. có gì thì ném đá vừa thôi nhé.
    Code:
    
    if ((e.KeyCode == Keys.Down) && (e.KeyCode == Keys.Down))
                {
                    frmDangky frm = new frmDangky();
                    frm.ShowDialog();
                }

  8. #8
    Ngày gia nhập
    11 2012
    Nơi ở
    Ở nhà
    Bài viết
    180

    Trích dẫn Nguyên bản được gửi bởi family2810 Xem bài viết
    Đã không biết thì thôi, đã nhắc lại còn nhắc sai.
    Đã test thử cái && của ông chưa mà nhắc thế :(
    đúng là thay dấu && = |
    Ví dụ:
    Visual C# Code:
    1. e.KeyCode == (Keys.Enter | Keys.Shift)
    Cách của ông cũng đâu có được.

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

    Trích dẫn Nguyên bản được gửi bởi kenkentrang Xem bài viết
    Cách của ông cũng đâu có được.

    Tại tôi tạo phím tắt cho chương trình toàn code như vậy mà.

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

    Trích dẫn Nguyên bản được gửi bởi kenkentrang Xem bài viết
    sorry chủ thớt. Bạn kia nói mình thế à. chỉ là mình chỉ test với cách này nên cứ tưởng nó tuơng tự
    Code:
     private void F_main_KeyDown(object sender, KeyEventArgs e)
            {
               
                if (e.KeyCode == Keys.P && e.Control)
                {
                    pictureBox5_Click(sender, e);
                }
            }
    Mình đã thử cách này rồi được 100%. Không tin test thử. có gì thì ném đá vừa thôi nhé.
    Code:
    
    if ((e.KeyCode == Keys.Down) && (e.KeyCode == Keys.Down))
                {
                    frmDangky frm = new frmDangky();
                    frm.ShowDialog();
                }
    bạn thành công vì 2 cái kia đều là keyDown

    if ((e.KeyCode == Keys.Left)&&(e.KeyCode == Keys.Down))
    {
    pictureBox1.Location = new Point(pictureBox1.Location.X - 2, pictureBox1.Location.Y+2);
    label1.Text = "success";
    }
    còn thế này thì thất bại hoàn toàn

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

  1. Cách nào bắt sự kiện chuột và bàn phím cùng lúc?
    Gửi bởi vudangthinh trong diễn đàn Thắc mắc lập trình Java
    Trả lời: 2
    Bài viết cuối: 01-12-2013, 10:33 PM
  2. Liệt kê các tổ hợp 3 ptử từ tập {A,B,C,D,E,F} không chứa cùng lúc A,F?
    Gửi bởi vetconmuchu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 09-04-2013, 10:54 AM
  3. [Help]Bôi đen hai richtextbox cùng lúc (C#)
    Gửi bởi pentrix2310 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: 23-03-2013, 04:54 PM
  4. ADO.NET Bị lỗi thực hiện câu lệnh update khi nhiều luồng cùng chạy câu lệnh cùng một lúc
    Gửi bởi tuandoi1 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 20-07-2011, 06:51 PM
  5. Lập trình âm thanh trên C# | Chạy cùng lúc 2 sound player trên cùng 1 form???
    Gửi bởi KingOfBlade trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 11-05-2009, 10:19 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