zedgraph 鼠标单击节点事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zedgraph 鼠标单击节点事件相关的知识,希望对你有一定的参考价值。

我用zedgraph画了一个散点图,怎么用鼠标单击这些节点,产生事件!

我在c# winform项目中用到ZedGraph做曲线图,
在曲线图的节点,我要显示节点的详细信息。
我把X轴的提示信息改成时间格式,
鼠标悬停时显示的内容就变了pt.X.ToString()的值就是一串很长的小数值

这里有所有鼠标的动作提示。
如果还不明白就打开事件面板。
一个一个的看。下面有中文解释的。

C# code
private void 曲线图_Load(object sender, EventArgs e)

myPane.Title.Text = "测试";
myPane.XAxis.Title.Text = "时间";
myPane.YAxis.Title.Text = "温度";

myPane.XAxis.MajorGrid.IsVisible = true;

myPane.Chart.Fill = new Fill(Color.White, Color.LightGray, 45.0f);
TextObj text = new TextObj(
"缩放:鼠标滚轮\n移动:鼠标中键\n菜单:鼠标右键",
0.05f, 0.95f, CoordType.ChartFraction, AlignH.Left, AlignV.Bottom);
text.FontSpec.StringAlignment = StringAlignment.Near;
myPane.GraphObjList.Add(text);

zg1.IsShowHScrollBar = true;
zg1.IsShowVScrollBar = true;
zg1.IsAutoScrollRange = true;
zg1.IsScrollY2 = true;
zg1.IsShowPointValues = true; //鼠标悬停提示
string[] labelsy = ;
myPane.YAxis.Scale.TextLabels = labelsy;

myPane.YAxis.MajorGrid.IsVisible = true;
myPane.YAxis.MinorGrid.IsVisible = true;

myPane.YAxis.MajorTic.IsBetweenLabels = false;

//手动添加鼠标悬停节点事件
zg1.PointValueEvent += new ZedGraphControl.PointValueHandler(MyPointValueHandler);

zg1.Graphpane.YAxis.ScaleFormatEvent += new Axis.ScaleFormatHandler(YScaleFormatEvent);


//鼠标悬停节点事件
private string MyPointValueHandler(ZedGraphControl sender, GraphPane pane, CurveItem curve, int iPt)

PointPair pt = curve[iPt];
return curve.Label.Text + "是 " + pt.Y.ToString("f1") + "° \n时间是 " + pt.X.ToString() + "";


private void button4_Click(object sender, EventArgs e)

string sql = "select H_dataTime,s_4 from HistoryLog";
DataTable dt = SqlDbHelper.Query(sql).Tables[0];
DataRowCollection dr = dt.Rows;
int count = dt.Rows.Count;
for (int i = 0; i < count; i++)

double x = (double)new XDate(DateTime.Parse(dr[i][0].ToString()));
double y = double.Parse(dr[i][1].ToString());
list.Add(x, y);

LineItem myCurve = myPane.AddCurve("温度",
list, Color.Red, SymbolType.Diamond);

myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.FontSpec.Angle = 15;
zg1.AxisChange();
zg1.Refresh();
参考技术A 我帮你吧本回答被提问者采纳

设置zedgraph鼠标拖拽和局部放大属性 转

设置zedgraph鼠标拖拽和局部放大属性 转

 

设置zedgraph鼠标拖拽和局部放大属性 

说一下几个属性的意义和具体应用:

(1)鼠标拖拽显示区域

PanModifierKeys ->> Gets or sets a value that determines which modifier keys will be used as a primary option to trigger a pan event.
意思就是调用一个拖拽命令时要添加的快捷键组合,比如我们使用的复制快捷键ctrl+c,这个命令就是来要我们设置调用这个方法的方式。

使用时的语法:zedGraphControl1.PanModifierKeys = Keys.Shift;(这是按住shift键,在点击鼠标左键可以拖拽zedGraphControl1的显示视图)

                         zedGraphControl1.PnModifierKeys = Keys.none;(直接可以用鼠标左键点击来拖拽)

(2)鼠标局部放大

ZoomStepFraction
->> Gets or sets the step size fraction for zooming with the
mouse wheel. A value of 0.1 will result in a 10% zoom step for each
mouse wheel movement.

意思就是设置缩放比例与鼠标滚轮步骤大小关系

使用时的语法:zedGraphControl1.ZoomStepFraction = 0;(这是鼠标滚轮缩放的比例为零,就是禁止使用鼠标滚轮的放大缩小功能)

                        zedGraphControl1.ZoomStepFraction = 0.1;(这是鼠标滚轮缩放的比例大小,值越大缩放就越灵敏)

 以上希望朋友们在用到zedgraph控件时有所帮助,有不对的地方欢迎指正!!





以上是关于zedgraph 鼠标单击节点事件的主要内容,如果未能解决你的问题,请参考以下文章

如何区分鼠标的单击和双击事件

MFC中如何在指定的区域响应鼠标单击事件

单击事件和双击事件冲突问题

JS 键盘回车和鼠标单击事件合并

vb中单击命令按钮触发哪些事件

AI基础python:openCV——处理鼠标事件