134 lines
3.8 KiB
C#
134 lines
3.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using DrawGraph;
|
|
using System.Drawing;
|
|
|
|
namespace DrawGraph
|
|
{
|
|
public class SelectedAreaObj : EventObj
|
|
{
|
|
//以下两个是物理点
|
|
private PhysioData startPD = null;
|
|
private PhysioData endPd = null;
|
|
private List<PhysioData> startPDs = null;
|
|
private List<PhysioData> endPds = null;
|
|
//以下两个是控件上的点
|
|
private PointF startPoint = new PointF();
|
|
private PointF endPoint = new PointF();
|
|
|
|
private float width = 0;
|
|
private float height = 0;
|
|
|
|
public double maxnumber = 300;
|
|
public double minnumber = 0;
|
|
|
|
private string tagName = TextPrefix.BT.ToString();
|
|
private bool selected = false;
|
|
|
|
/// <summary>
|
|
/// 选中框是否在选中状态
|
|
/// </summary>
|
|
public bool Selected
|
|
{
|
|
get { return selected; }
|
|
set { selected = value; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置开始的物理点
|
|
/// </summary>
|
|
public PhysioData StartPD
|
|
{
|
|
get { return startPD; }
|
|
set
|
|
{
|
|
startPD = value;
|
|
startPoint.X = (float)(getXPositinByXDate(startPD.RecordTime));
|
|
startPoint.Y = (float)(getYPositinByValue(startPD.Y, maxnumber, minnumber));
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 设置结束的物理点
|
|
/// </summary>
|
|
public PhysioData EndPd
|
|
{
|
|
get { return endPd; }
|
|
set
|
|
{
|
|
endPd = value;
|
|
endPoint.X = (float)(getXPositinByXDate(endPd.RecordTime));
|
|
endPoint.Y = (float)(getYPositinByValue(endPd.Y, maxnumber, minnumber));
|
|
width = endPoint.X - startPoint.X;
|
|
height = endPoint.Y - startPoint.Y;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 设置开始的物理点
|
|
/// </summary>
|
|
public List<PhysioData> StartPDs
|
|
{
|
|
get { return startPDs; }
|
|
set { startPDs = value; }
|
|
}
|
|
/// <summary>
|
|
/// 设置结束的物理点
|
|
/// </summary>
|
|
public List<PhysioData> EndPds
|
|
{
|
|
get { return endPds; }
|
|
set { endPds = value; }
|
|
}
|
|
|
|
private static volatile SelectedAreaObj instance;
|
|
|
|
private SelectedAreaObj()
|
|
{
|
|
tagName += this.GetType().FullName.ToString();
|
|
}
|
|
|
|
public static SelectedAreaObj GetInstance()
|
|
{
|
|
if (null == instance)
|
|
{
|
|
instance = new SelectedAreaObj();
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
public void Draw()
|
|
{
|
|
if (zgcAnas == null)
|
|
{
|
|
//MessageBox.Show("未传递窗体或传递的不是麻醉单窗体");
|
|
return;
|
|
}
|
|
//画之前行清空对象
|
|
Clear();
|
|
if (startPD != null && endPd != null)
|
|
{
|
|
//只能正着画;
|
|
if (endPoint.X <= startPoint.X || endPoint.Y <= startPoint.Y) return;
|
|
|
|
BoxObj box = new BoxObj(startPoint.X, startPoint.Y, width, height);
|
|
box.Tag = tagName;
|
|
box.Location.CoordinateFrame = CoordType.PaneFraction;
|
|
box.Border.IsVisible = true;
|
|
box.Border.Color = Color.Black;
|
|
box.Border.Width = 1;
|
|
box.Fill.IsVisible = false;
|
|
box.ZOrder = ZOrder.A_InFront;
|
|
ZUtil.DrawBox(box, zgcAnas);
|
|
selected = true;
|
|
}
|
|
}
|
|
|
|
public void Clear()
|
|
{
|
|
selected = false;
|
|
delLineObj(tagName);
|
|
}
|
|
}
|
|
}
|