|
|
|
มีปัญหาเรื่องการเขียนโปรแกรมใช้เมาส์ลากเส้นเหมือนเราวากรูปด้วยดินสอ |
|
|
|
|
|
|
|
ดูพวก drag and drop และ location ของ form ที่ผมทราบก็มีเท่านี้ครับ
|
|
|
|
|
Date :
2012-01-12 11:47:50 |
By :
kanchen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอจะมีโค๊ดตัวอย่างมั้ยครับ รบกวนด้วยขอบคุณครับ
|
|
|
|
|
Date :
2012-01-12 21:38:51 |
By :
worajito |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทดลองสร้าง Form1 ขึ้นมา โดยกำหนด Event ของ Form1 มี ทั้งหมด 3 Event คือ
1. Form1_MouseDown
2. Form1_MouseMove
3. Form1_MouseUp
จากนั้นเติม Code เหล่านี้ลงไปครับ
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
private bool isMouseDownLeftState = false;
private Point beginLocation;
private Point endLocation;
public Form1()
{
InitializeComponent();
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
beginLocation = new Point(e.X, e.Y);
isMouseDownLeftState = true;
}
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDownLeftState)
{
endLocation = new Point(e.X, e.Y);
DrawLine();
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
endLocation = new Point(e.X, e.Y);
isMouseDownLeftState = false;
DrawLine();
}
private void DrawLine()
{
using (Graphics g = this.CreateGraphics())
{
g.Clear(this.BackColor);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.DrawLine(Pens.Red, beginLocation, endLocation);
}
}
}
}
เมื่อ Run ขึ้นมาทดลอง Drag Mouse เพื่อวาดเส้นตรงสีแดง แล้วปล่อย Mouse จะได้เส้น 1 เส้น
สรุปหลักการก็ประมาณว่าจดจำ Position ก่อนการวาดที่ MouseDown แล้วขณะวาดก็ Render ไปด้วย ที่ MouseMove แล้วเมื่อวาดเสร็จปล่อย Mouse ที่ MouseUp ก็วาดอีกครั้งนึง เท่านี้เองครับไม่มีอะไรยาก
|
|
|
|
|
Date :
2012-01-13 15:17:43 |
By :
gunnermontana |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ ทำได้แล้วครับ
|
|
|
|
|
Date :
2012-01-13 20:23:04 |
By :
worajito |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|