ลากวัตถุด้วยเมาส์ทำอย่างไรครับ

Go down

ลากวัตถุด้วยเมาส์ทำอย่างไรครับ

ตั้งหัวข้อ  danugolf on 19th March 2010, 1:28 pm

ลากวัตถุด้วยเมาส์

ต้องการเขียนโค้ดให้สามารถลากวัตถุหรือรูปภาพด้วยเมาส์ได้ จะต้องทำยังไง
1.เมื่อคลิกปุ่ม Button จะมีรูปภาพที่เลือกแสดงติดเมาส์มา

2.เมื่อคลิกเมาส์ลงบนฟอร์มแล้วรูปภาพจะแสดงอยู่ค้างที่บนฟอร์ม
ผมใช้ Visual C# เขียน

อันนี้คือโค้ดที่เขียนมาแล้วแต่มันทำไม่สำเร็จ
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 Block2
{
public partial class FormBlock2 : Form
{
private String picture;
private Boolean clickBtn = false;

public FormBlock2()
{
InitializeComponent();
//MouseMove += new MouseEventHandler(evenMouseMove)
}

private void btnBlock_Click(object sender, EventArgs e)
{
clickBtn = true;
picture = "emo6.gif";//cinjang.gif http://heart7.jpg http://imgDanugolf.png http://heart7.jpg
}
private void btnHeart_Click(object sender, EventArgs e)
{
clickBtn = true;
picture = "heart7.jpg";
}

private void evenMouseMove(object sender, MouseEventArgs e)
{
label1.Text = "X = " + e.X.ToString();
label2.Text = "Y = " + e.Y.ToString();
if (clickBtn == true)
{
Graphics imgShow = this.CreateGraphics();
Bitmap imgLoadSave = new Bitmap(picture);
imgShow.DrawImage(imgLoadSave, e.X, e.Y);
Invalidate();
}
}

private void evenMouseClick(object sender, MouseEventArgs e)
{
if (clickBtn == true)
{
Graphics imgShow = this.CreateGraphics();
Bitmap imgLoadSave = new Bitmap(picture);
imgShow.DrawImage(imgLoadSave, e.X, e.Y);
clickBtn = false;
}
}

private void evenPaintForm(object sender, PaintEventArgs e)
{
}

private void btnClear_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
g.Clear(Color.White);
}
}
}

danugolf

จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 29

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

ลองแบบนี้

ตั้งหัวข้อ  laploy on 19th March 2010, 7:25 pm

ลองแบบนี้





ดาวน์โหลดโปรเจกต์
http://cid-4d52c1812766d2d7.skydrive.live.com/self.aspx/.Public/share/Block2.zip

laploy

จำนวนข้อความ : 29
Join date : 03/03/2010

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

มัน Error ครับ

ตั้งหัวข้อ  danugolf on 21st March 2010, 9:49 pm

ขอบคุณครับที่ให้ความช่วยเหลือ

แต่บรรทัดนี้มัน error ครับ
Bitmap imgLoadSave = new Bitmap(picture);

ตอนแรกคิดว่าเป็นที่ชื่อรูป picture = @"c:\temp\boy.png";
แต่ผมก็เปลี่ยนชื่อรูปแล้ว เป็นที่อยู่ของรูป

มันก็ยังฟ้องอย่างนี้อ่ะครับ
Value cannot be null.
Parameter name: path

danugolf

จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 29

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

เปลี่ยนเป็นอะไรครับ

ตั้งหัวข้อ  laploy on 22nd March 2010, 10:18 am

เปลี่ยนเป็นอะไรครับ

laploy

จำนวนข้อความ : 29
Join date : 03/03/2010

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

แก้อย่า่งนี้ถูกไหมครับ

ตั้งหัวข้อ  danugolf on 22nd March 2010, 11:29 am

ผมมีรูปอยู่ในไดร์ฟ C อยู่ที่ c:\emo2.gif

ผมเลยแก้บรรทัดนี้
picture = @"c:\temp\boy.png";
เป็น
picture = @"c:\emo2.gif";

รูปตามเว็บนี้เลยครับ
https://redcdn.net/ihimizer/img716/7792/errorbz.jpg

danugolf

จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 29

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

เมธอดอะไร

ตั้งหัวข้อ  laploy on 22nd March 2010, 12:49 pm

ตรงที่วงสีแดงคือเมธอดอะไรครับ

laploy

จำนวนข้อความ : 29
Join date : 03/03/2010

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

เมธอดนี้ครับ

ตั้งหัวข้อ  danugolf on 22nd March 2010, 1:42 pm

เมธอดนี้ครับ
private void button1_Click(object sender, EventArgs e)
{
clickBtn = true;
picture = @"c:\emo2.gif";
}

danugolf

จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 29

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

ถ้าอย่างนั้นให้ใส่

ตั้งหัวข้อ  laploy on 22nd March 2010, 8:53 pm

ถ้าอย่างนั้นให้ใส่คำสั่ง
picture = @"c:\emo2.gif";
ไว้ใน form load ด้วยครับ

laploy

จำนวนข้อความ : 29
Join date : 03/03/2010

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

ขอบคุณครับ

ตั้งหัวข้อ  danugolf on 23rd March 2010, 10:02 am

ได้แล้วครับ ขอบคุณครับ Very Happy

danugolf

จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 29

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

ถามต่อ

ตั้งหัวข้อ  danugolf on 29th March 2010, 12:34 pm

ไหนๆ ก็ ไหนๆแล้ว ขอถามต่อเลยแล้วกันครับ ถ้าต้องการให้โปรแกรมจำวัตถุที่ลากออกมาได้ แบบว่าเมื่อแสดงวัตถุใหม่(รูปใหม่)ขึ้นมาวัตถุเก่า(รูปเก่า)ก็ยังอยู่ และสามารถใช้เมาส์ลากเปลี่ยนตำแหน่งวัตถุในภายหลังได้ จะต้องทำอย่างไรครับ หรือต้องศึกษาเกี่ยวกับเรื่องอะไรครับ ขอบคุณล่วงหน้าครับ

danugolf

จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 29

ดูข้อมูลส่วนตัว

ขึ้นไปข้างบน Go down

ขึ้นไปข้างบน

- Similar topics

 
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ