当第一次运行form时,我从数据库里读取画线的记录,然后在picturebox里的paint进行重画时,为什么只是闪了一下就没了?
解决方案 »
- ================请问bool类型是不是不能被序列化?===================================
- 急寻一个像“飘萍导航”上的js移动div的代码????
- txt批量导入数据库的问题.
- 关于C#中BinaryReader以及数据存储的问题.请高手指点一下
- 菜鸟提问,关于OnClientClick="return confirm('您确认删除该记录吗?');"
- 新申请qq方法 免费 我朋友已经申请了二个
- 菜鸟级问题
- 我遍历listView1中的文件,从文件头到文件尾逐一遍历打开?怎样实现?
- C#中如何判断一段字符串中包含另一个字符串?
- 找.NET母版页模板
- 如何把字符串转换成ansi类型
- 关于C#里的怎么又继承一个类又实现一个接口
AutoRedraw是VB6的picturebox的属性,.NET里没有了
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Data.OleDb;namespace NSVstandard
{
public partial class frmDraw : Form
{
Rectangle SelectRect = new Rectangle();
Point ps = new Point();
Point pe = new Point();
OleDbConnection MyConn; string strType = "Line"; public frmDraw()
{
InitializeComponent();
} private void frmDraw_Load(object sender, EventArgs e)
{ }
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
SelectRect.Width = 0;
SelectRect.Height = 0;
SelectRect.X = e.X;
SelectRect.Y = e.Y; ps.X = e.X;
ps.Y = e.Y;
pe = ps;
} private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
switch (strType)
{
case "Line":
ControlPaint.DrawReversibleLine(this.pictureBox1.PointToScreen(ps), this.pictureBox1.PointToScreen(pe), Color.Black);
pe = new Point(e.X, e.Y);
ControlPaint.DrawReversibleLine(this.pictureBox1.PointToScreen(ps), this.pictureBox1.PointToScreen(pe), Color.Black);
break;
case "Rect":
ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
SelectRect.Width = e.X - SelectRect.X;
SelectRect.Height = e.Y - SelectRect.Y;
ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
break;
case "Ellipse":
ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
SelectRect.Width = e.X - SelectRect.X;
SelectRect.Height = e.Y - SelectRect.Y;
ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
break; }
}
} private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
Graphics g = this.pictureBox1.CreateGraphics();
Pen p = new Pen(Color.Red, 1);
SolidBrush brushBlue = new SolidBrush(Color.Blue);
switch (strType)
{
case "Line":
ControlPaint.DrawReversibleLine(this.pictureBox1.PointToScreen(ps), this.pictureBox1.PointToScreen(pe), Color.Black);
g.DrawLine(p, ps, pe);
break;
case "Rect":
ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
g.DrawRectangle(p, SelectRect);
break;
case "Ellipse":
ControlPaint.DrawReversibleFrame(this.pictureBox1.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
g.DrawEllipse(p, SelectRect);
g.FillEllipse(brushBlue, SelectRect);
break;
}
g.Dispose();
} private void button1_Click(object sender, EventArgs e)
{
strType = "Line";
} private void button2_Click(object sender, EventArgs e)
{
strType = "Rect";
} private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
string[] sArray;
Graphics g = this.pictureBox1.CreateGraphics();
//try
//{
//create a connection string to the access database
MyConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User Id=;Password=;Data Source=" + Program.ObserveDB);
MyConn.Open();
//dAdapter = new OleDbDataAdapter("SELECT * FROM observe ORDER BY ID", MyConn);
//dSet = new DataSet();
//dAdapter.Fill(dSet, table);
OleDbCommand MyCommand = new OleDbCommand("SELECT * FROM observe WHERE CODE = 4", MyConn);
OleDbDataReader MyDataReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection);
string strNum;
while (MyDataReader.Read())
{
for (int i = 1; i < 50; i++)
{
if (i < 10)
{
strNum = "0" + i.ToString();
}
else
{
strNum = i.ToString();
} if (MyDataReader["PROC" + strNum].ToString() != "")
{
sArray = MyDataReader["PROC" + strNum].ToString().Split(',');
if (sArray[1].ToString() == "0")
g.DrawLine(new Pen(Color.Red), Int16.Parse(sArray[2]), Int16.Parse(sArray[3]), Int16.Parse(sArray[4]), Int16.Parse(sArray[5]));
}
}
}
MyConn.Close();
//}
//catch (Exception ex)
//{
// MessageBox.Show("Error : " + ex.Message);
// //connectection failed
//}
} private void button3_Click(object sender, EventArgs e)
{
strType = "Ellipse";
}
}
}
Graphics g = this.pictureBox1.CreateGraphics();withGraphics g = e.Graphics;
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2