想用C#实现以下功能,大家帮忙指点指点
C#语言,Visual studio2010环境编辑。
想要实现的目标:我自定义一个控件,用户点击我的控件之后,就会在绘图板上显示一个图形,该图形是可以通过鼠标选中后进行拖拽的。类似于matlab的simulink功能,可以实现拖拽,也可以理解为visio绘图,但是不需要调整图形的大小。
问题1:如何实现点中控件后系统自动生成一个显示的图形?这个图形最好要占用很小的空间和内存,所以最好不要用图片,能不能用其他的代替?
问题2:实现拖拽功能的鼠标点击操作命令该如何去写?就是鼠标点击图形后,相应图形跟随移动,鼠标再次点击时,图片停止移动。
问题3:我现在学习的一些书本上的程序是基于studio2008编写的,但是这些程序我改写到2010中就会出现错误,如果直接打开2008版本的解决方案,2010会对其进行改写和备份,改写后的程序完全可以进行调试,不会出现问题,但是为什么直接用2010写的时候就会出现错误呢?
以下给出一个例子,大家帮忙分析分析。
例子是实现鼠标拖拽图形的功能,当鼠标在picturebox范围内时,就会把图形跟随鼠标移动。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Ex04_14
{
public partial class Form1 : Form
{
bool flag = false;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
flag = false;
pictureBox1.Location = new System.Drawing.Point(14, 8);
openFileDialog1.Filter = "*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf";
openFileDialog1.ShowDialog();
Image myImage = System.Drawing.Image.FromFile(openFileDialog1.FileName);
pictureBox1.Image = myImage;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (flag)
pictureBox1.Location = new System.Drawing.Point(e.X, e.Y);
}
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
flag = true;
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
在2010中直接编写就会出现以下问题:
错误 1 “Ex04_14.Form1”不包含“openFileDialog1_FileOk”的定义,并且找不到可接受类型为“Ex04_14.Form1”的第一个参数的扩展方法“openFileDialog1_FileOk”(是否缺少 using 指令或程序集引用?) E:\00计算机语言学习\C#\Test\Ex04_14\Ex04_14\Form1.Designer.cs 57 94 Ex04_14