ลากวัตถุด้วยเมาส์ทำอย่างไรครับ
2 posters
หน้า 1 จาก 1
ลากวัตถุด้วยเมาส์ทำอย่างไรครับ
ลากวัตถุด้วยเมาส์
ต้องการเขียนโค้ดให้สามารถลากวัตถุหรือรูปภาพด้วยเมาส์ได้ จะต้องทำยังไง
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);
}
}
}
ต้องการเขียนโค้ดให้สามารถลากวัตถุหรือรูปภาพด้วยเมาส์ได้ จะต้องทำยังไง
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 : 35
ลองแบบนี้
ลองแบบนี้
ดาวน์โหลดโปรเจกต์
http://cid-4d52c1812766d2d7.skydrive.live.com/self.aspx/.Public/share/Block2.zip
ดาวน์โหลดโปรเจกต์
http://cid-4d52c1812766d2d7.skydrive.live.com/self.aspx/.Public/share/Block2.zip
laploy- จำนวนข้อความ : 29
Join date : 03/03/2010
มัน Error ครับ
ขอบคุณครับที่ให้ความช่วยเหลือ
แต่บรรทัดนี้มัน error ครับ
Bitmap imgLoadSave = new Bitmap(picture);
ตอนแรกคิดว่าเป็นที่ชื่อรูป picture = @"c:\temp\boy.png";
แต่ผมก็เปลี่ยนชื่อรูปแล้ว เป็นที่อยู่ของรูป
มันก็ยังฟ้องอย่างนี้อ่ะครับ
Value cannot be null.
Parameter name: path
แต่บรรทัดนี้มัน 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 : 35
แก้อย่า่งนี้ถูกไหมครับ
ผมมีรูปอยู่ในไดร์ฟ C อยู่ที่ c:\emo2.gif
ผมเลยแก้บรรทัดนี้
picture = @"c:\temp\boy.png";
เป็น
picture = @"c:\emo2.gif";
รูปตามเว็บนี้เลยครับ
https://2img.net/r/ihimizer/img716/7792/errorbz.jpg
ผมเลยแก้บรรทัดนี้
picture = @"c:\temp\boy.png";
เป็น
picture = @"c:\emo2.gif";
รูปตามเว็บนี้เลยครับ
https://2img.net/r/ihimizer/img716/7792/errorbz.jpg
danugolf- จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 35
เมธอดนี้ครับ
เมธอดนี้ครับ
private void button1_Click(object sender, EventArgs e)
{
clickBtn = true;
picture = @"c:\emo2.gif";
}
private void button1_Click(object sender, EventArgs e)
{
clickBtn = true;
picture = @"c:\emo2.gif";
}
danugolf- จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 35
ถ้าอย่างนั้นให้ใส่
ถ้าอย่างนั้นให้ใส่คำสั่ง
picture = @"c:\emo2.gif";
ไว้ใน form load ด้วยครับ
picture = @"c:\emo2.gif";
ไว้ใน form load ด้วยครับ
laploy- จำนวนข้อความ : 29
Join date : 03/03/2010
ถามต่อ
ไหนๆ ก็ ไหนๆแล้ว ขอถามต่อเลยแล้วกันครับ ถ้าต้องการให้โปรแกรมจำวัตถุที่ลากออกมาได้ แบบว่าเมื่อแสดงวัตถุใหม่(รูปใหม่)ขึ้นมาวัตถุเก่า(รูปเก่า)ก็ยังอยู่ และสามารถใช้เมาส์ลากเปลี่ยนตำแหน่งวัตถุในภายหลังได้ จะต้องทำอย่างไรครับ หรือต้องศึกษาเกี่ยวกับเรื่องอะไรครับ ขอบคุณล่วงหน้าครับ
danugolf- จำนวนข้อความ : 11
Join date : 13/03/2010
Age : 35
หน้า 1 จาก 1
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ
|
|