日期:2014-05-16 浏览次数:20842 次
binzhouweichao@163.com
2013-10-17
仍然沿用前面所使用的项目。
参考:
访问控件私有属性:http://bbs.csdn.net/topics/40412507
静态类与非静态类:http://www.360doc.com/content/13/0608/09/10504424_291426603.shtml
获取主窗口控件引用:http://zhidao.baidu.com/link?url=Boy2Ece-mWVNEnLFggS_fykAfUtBXSuwMXilqSU2hcmNND5aSOeDlaoRKbs-MWnyR-MfTniFcVdZBCDY1qlcXK
1. 在主窗体类中自定义显示、隐藏图片函数
在主窗体的TriPaint类中自定义这两个函数,使得每个控件的事件函数可以直接调用此函数。
在TriPaint类的构造函数后面添加:
//自定义显示图片函数 public void showImage() { pictureBox1.Image = GlobalVars.B;//显示图像b pictureBox1.Refresh();//刷新图片框 } //自定义隐藏图片函数 public void hideImage() { pictureBox1.Image = null;//图片置空 pictureBox1.Refresh();//刷新图片框 }
修改后的TriPaint.cs代码为:
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 TriPaint_20131013 { public partial class TriPaint : Form { public TriPaint() { InitializeComponent(); //在这里添加代码 //对数据进行处理 for (int i = 0; i < GlobalVars.POINTCNT; i++) { GlobalVars.Data[i].X = (int)(i * GlobalVars.xInterval);//i对应的data.X GlobalVars.Data[i].Y = (int)(GlobalVars.times * Math.Sin(GlobalVars.Data[i].X / GlobalVars.times));//sin函数求值 GlobalVars.Data[i].Y = (int)(GlobalVars.Data[i].Y + GlobalVars.times * 1);//Y轴向正向平移1,即1*times,令最高点(也就是3π/2对应的-1点)的值为0 } } private void TriPaint_Load(object sender, EventArgs e) { //Graphics g = this.CreateGraphics();//画板 //this.Show();//显示 //Bitmap b = new Bitmap(pictureBox1.Width, pictureBox1.Height);//新建图像画布 Graphics g = Graphics.FromImage(GlobalVars.B);//图像画布添加绘图 //坐标系平移镜像 g.TranslateTransform(0, 250);//向y正向平移250 g.ScaleTransform(1, -1);//关于x轴镜像 Pen p = new Pen(Color.Blue, 1);//画笔 g.DrawLines(p, GlobalVars.Data);//多点绘图,直线连接 //pictureBox1.Image = b;//图像框的图像为上述绘图生成的图像 //释放绘图所占用资源 p.Dispose(); g.Dispose(); //b.Dispose(); } //自定义显示图片函数 public void showImage() { pictureBox1.Image = GlobalVars.B;//显示图像b pictureBox1.Refresh();//刷新图片框 } //自定义隐藏图片函数 public void hideImage() { pictureBox1.Image = null;//图片置空 pictureBox1.Refresh();//刷新图片框 } private void button1_Click(object sender, EventArgs e) { //pictureBox1.Image = GlobalVars.B;//显示图像b //pictureBox1.Refresh();//刷新图片框 showImage();//显示图片 } private void button2_Click(object sender, EventArgs e) { //pictureBox1.Image = null;//对Image的值置空,刷新后图像就消失了 //pictureBox1.Refresh(); hideImage();//隐藏图片 } private void showToolStripMenuItem_Click(object sender, EventArgs e) { //pictureBox1.Image = GlobalVars.B;//显示图像b //pictureBox1.Refresh();//刷新图片框 showImage();//显示图片 } private void hideToolStripMenuItem_Click(object sender, EventArgs e) { //pictureBox1.Image = null;//对Image的值置空,刷新后图像就消失了 //pictureBox1.Refresh(); hideImage();//隐藏图片 } private void toolStripButton1_Click(object sender, EventArgs e) { //pictureBox1.Image = GlobalVars.B;//显示图像b //pictureBox1.Refresh();//刷新图片框 showImage();//显示图片