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

Đề tài: Bắt sự kiện nhấp giữ chuột trái thì làm thế nào ạ? em tìm hoài ko đc?

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

    Mặc định Bắt sự kiện nhấp giữ chuột trái thì làm thế nào ạ? em tìm hoài ko đc?

    Tình hình em đang muốn làm 1 phần mềm vẽ đơn giản, trong đó có vẽ tự do bằng bút chì bằng cách vẽ đường thẳng từ điểm cũ tới điểm mới trong mỗi lần bấm giữ và kéo đi như trong pain ý ạ. Vẽ thì vẽ được rồi, nhưng em cho vào sự kiện mouse move thì đưa vào khung vẽ cái là nó vẽ luôn, đi tới đâu vẽ tới đấy, khỏi cần ấn vậy không đạt yêu câu.

    Đi vào trong tâm vấn đề, em cần tìm sự kiện click rồi giữ chuột, có ai có cao kiến gì ko ạ? không phải là click chuột đâu ạ, mà là ấn xong rồi giữ và kéo cơ ạ??

    Mong các Pro giải đáp giúp...

  2. #2
    Ngày gia nhập
    08 2011
    Bài viết
    36

    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace vehinhdongian
    {
        public partial class Form1 : Form
        {
            String kieuchedo = "";
            int xcu, ycu;
            Graphics g;
            Pen p = new Pen(Color.Black);
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void label1_Click(object sender, EventArgs e)
            {
    
            }
    
            private void btnButchi_Click(object sender, EventArgs e)
            {
                kieuchedo = "butchi";
                lblKieudieukhien.Text = "Bút chì";
            }
    
            private void btnHinhtron_Click(object sender, EventArgs e)
            {
                kieuchedo = "hinhtron";
                lblKieudieukhien.Text = "Vẽ hình tròn";
            }
    
            private void btnHinhchunhat_Click(object sender, EventArgs e)
            {
                kieuchedo = "hinhchunhat";
                lblKieudieukhien.Text = "Hình chữ nhật";
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                g = ptbKhungve.CreateGraphics();
            }
    
            private void ptbKhungve_MouseDown(object sender, MouseEventArgs e)
            {
                if (kieuchedo == "butchi") {
                    xcu = e.X;
                    ycu = e.Y;
                }
                else if (kieuchedo == "hinhtron") {
    
                }
                else if (kieuchedo == "chunhat") {
    
                }
                else {
    
                }
            }
    
            private void ptbKhungve_MouseMove(object sender, MouseEventArgs e)
            {
                if (kieuchedo == "butchi")
                {
                    lblToadochuot.Text = e.X + " x " + e.Y;
                    g.DrawLine(p, xcu, ycu, e.X, e.Y);
                    xcu = e.X;
                    ycu = e.Y;
                }
                else if (kieuchedo == "hinhtron")
                {
    
                }
                else if (kieuchedo == "chunhat")
                {
    
                }
                else
                {
    
                }
            }
    
            private void btnButchi_MouseHover(object sender, EventArgs e)
            {
    
            }
    
            private void ptbKhungve_MouseLeave(object sender, EventArgs e)
            {
    
            }
    
            private void ptbKhungve_MouseUp(object sender, MouseEventArgs e)
            {
                
            }
        }
    }
    Đây là code em đang viết dở. em search thì mouse move là nhấp giữ chuột rồi, nhưng sao em chả cần giữ nó vẫn vẽ ầm ầm đấy ạ :(

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

    Bạn xem sự kiện mouse up, mouse down nữa, kết hợp lại.

    thêm biến đánh dấu đã click nhé

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

    Ref Code:
    1. http://csharpviet.wordpress.com/2013/02/06/di-chuyen-form-tai-moi-vi-tri/
    Programming tutorials and source code examples

    Trong nhà không vợ không con
    Uống bia gặm thịt sao ngon thế này
    Nhậu nhẹt không bị la rầy
    Một tuần ta cứ bảy ngày " nâng ly "....

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

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    Bạn xem sự kiện mouse up, mouse down nữa, kết hợp lại.

    thêm biến đánh dấu đã click nhé
    Phải có một biến (kiểu luận lý - bool) để lưu xem chuột có được nhấn (true), và chuột đã được thả (false).
    Khi chuột di chuyển trên control (MouseMove) thì vẽ, nhưng với điều kiện là chuột đã được nhấn.

    Trong sự kiện MouseDown thì gán biến luận lý là true. MouseUp thì biến đó bằng false.

  6. #6
    Ngày gia nhập
    10 2009
    Nơi ở
    gầm cầu
    Bài viết
    156

    Mặc định Bắt sự kiện nhấp giữ chuột trái thì làm thế nào ạ? em tìm hoài ko đc?

    vòng vo tam quốc làm cái gì . làm đại vài dòng cho lẹ
    Visual C# Code:
    1.         bool alowDraw = false;
    2.         Point beginPoint;
    3.         private void Form1_MouseMove(object sender, MouseEventArgs e)
    4.         {
    5.             if (alowDraw)
    6.             {
    7.                 gp = this.CreateGraphics();
    8.                 gp.DrawLine(p, beginPoint, new Point(e.X, e.Y));
    9.                 beginPoint = new Point(e.X, e.Y);
    10.             }
    11.         }
    12.  
    13.          private void Form1_MouseDown(object sender, MouseEventArgs e)
    14.         {
    15.             alowDraw = true;
    16.             beginPoint = new Point(e.X, e.Y);
    17.         }
    18.  
    19.         private void Form1_MouseUp(object sender, MouseEventArgs e)
    20.         {
    21.             alowDraw = false;
    22.         }

  7. #7
    Ngày gia nhập
    08 2010
    Nơi ở
    Isya
    Bài viết
    1

    Èo, kiểm tra là chột trái hay chuột phải trước rồi mới chạy các lệnh là được mà.
    Visual C# Code:
    1. if(e.Button == mousebuttons.left)
    2. {
    3.  
    4. ...
    5. }

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

  1. Trả lời: 12
    Bài viết cuối: 25-10-2012, 02:48 AM
  2. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  3. Kỹ thuật C++ Các quy tắc nhập chuỗi trong C++, làm thế nào để nhập chuỗi có khoảng trắng?
    Gửi bởi quyen1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 20-11-2010, 03:36 PM
  4. Thắc mắc nhập 2 chuỗi từ bàn phím.
    Gửi bởi thanhnd01182 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 28-07-2010, 04:47 PM
  5. Nhập chuỗi, đếm số lần xuất hiện các từ trong chuỗi như thế nào?
    Gửi bởi VizDee trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 23-01-2010, 01:33 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