需要System.Drawing,具体资料很多有个 Windows画图白板源码 from AspxCn 不错,要的话留mail
解决方案 »
- 本人C#菜鸟水平,今天遇到了一个数组赋值无效的问题,请大家帮我看一下如何解决:
- minitab 二次开发
- 帮忙把MSSQL语句翻译成DATASET中可以执行的语句
- 请帮忙看看 动态生成调用利用soapheader加密的webService的问题
- 有没有好的关于p2p技术的C#代码?
- 如果转换一段文字的编码?
- MSXML COM库 和 .NET 中的 XML 到底是一回事情吗??
- 在C#里为什么得到的值都是16进制?
- 如何从此树型控件的XMLString中获取某一节点的父节点和子节点?如蒙赐教,感激涕零!
- winform里面从form1打开from2,form2把数据传回form1并赋值给textbox,怎么实现,求教!!
- 关于Form的键盘事件!
- 全文索引的设计以及实现
我现在试着写一个winform的看看,==
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO;//用于文件存取
using System.Data;//用于数据访问
using System.Drawing;//提供画GDI+图形的基本功能
using System.Drawing.Drawing2D;//提供画高级二维,矢量图形功能
using System.Drawing.Imaging;//提供画GDI+图形的高级功能 namespace DRAW_SAMPLE
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
private int startDrawing=0;//是否绘画
private Point oldpt=new Point(0,0);//记录原来鼠标位置
private Point newpt=new Point(0,0);//记录新的鼠标位置
private Bitmap myBitmap=new Bitmap(500,500,PixelFormat.Format16bppRgb555);//产生一个image对象
private Graphics myGraphics=null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent(); //
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(560, 382);
this.Name = "Form1";
this.Text = "Form1";
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
this.Load += new System.EventHandler(this.Form1_Load);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove); }
#endregion /// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1()); } private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(startDrawing==1)
{
newpt=new Point(e.X,e.Y);
myGraphics.DrawLine(new Pen(Color.Black,3),oldpt,newpt);//连线
Form1.ActiveForm.BackgroundImage=(Image) myBitmap;//显示轨迹
Form1.ActiveForm.Invalidate();//重画
oldpt=newpt;
}
} private void Form1_Load(object sender, System.EventArgs e)
{
myGraphics = Graphics.FromImage(myBitmap);//由myBitmap产生一个Graphics对象
myGraphics.Clear(Color.White);//绘制myBitmap底图 } private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(startDrawing==0)
{
oldpt.X=e.X ;
oldpt.Y=e.Y;
startDrawing=1;//第一次点击开始绘画
}
if(startDrawing==1)
{
startDrawing==3;//再次点击停止绘画并储存图片
myBitmap.Save("c:\\hi.gif",ImageFormat.Gif);
}
} }
}
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(startDrawing==0)
{
oldpt.X=e.X ;
oldpt.Y=e.Y;
startDrawing=1;//第一次点击开始绘画
}
}
我用你的代码可以画了,但它不能用按一下mouse左键就停止画,请问有解决办法吗? 谢谢.
{
if(startDrawing==1)
{
newpt=new Point(e.X,e.Y);
myGraphics.DrawLine(new Pen(Color.Black,3),oldpt,newpt);//连线
Form1.ActiveForm.BackgroundImage=(Image) myBitmap;//显示轨迹
Form1.ActiveForm.Invalidate();//重画
oldpt=newpt;
startDrawing1=1;
}
}private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(startDrawing==0)
{
oldpt.X=e.X ;
oldpt.Y=e.Y;
startDrawing=1;//第一次点击开始绘画
}
if(startDrawing1==1)
{
startDrawing=2;
}
}