我正在使用 c# 中的 windows 窗体应用程序。我已经安装了 TeeChart for.net v3 的许可版本。我正在尝试删除一些不需要的 TeeChart 部分。
感谢 stackoverflow 网站的用户,他们帮助我在 TeeChart 上创建了一个鼠标点击弹出窗口。现在我想为那个弹出点击实现一些功能。
使用下面的代码,我可以创建鼠标右键单击弹出窗口。
double m_dblTempVolFromTo = 0;
double dtFromTo = 0;
private void mainTChart_MouseUp(object sender, MouseEventArgs e)
{
if (!checkBoxIsTime.Checked && e.Button == MouseButtons.Right)
{
m_dblTempVolFromTo = mainTChart.Series[0].XScreenToValue(e.X);
mainTChart.ContextMenu = new ContextMenu();
mainTChart.ContextMenu.MenuItems.Add(new MenuItem("From " + m_dblTempVolFromTo + " cc"));
mainTChart.ContextMenu.MenuItems.Add(new MenuItem("To " + m_dblTempVolFromTo + " cc"));
mainTChart.ContextMenu.MenuItems[0].Click += new EventHandler(From_Click);
mainTChart.ContextMenu.MenuItems[1].Click += new EventHandler(To_Click);
}
else if (checkBoxIsTime.Checked && e.Button == MouseButtons.Right)
{
DateTime dt;
dtFromTo = mainTChart.Series[0].XScreenToValue(e.X);
DateTime.TryParse(dtFromTo.ToString(), out dt);
mainTChart.ContextMenu = new ContextMenu();
mainTChart.ContextMenu.MenuItems.Add(new MenuItem("From " + dt.TimeOfDay.ToString() ));
mainTChart.ContextMenu.MenuItems.Add(new MenuItem("To " + dt.TimeOfDay.ToString()));
mainTChart.ContextMenu.MenuItems[0].Click += new EventHandler(From_Click);
mainTChart.ContextMenu.MenuItems[1].Click += new EventHandler(To_Click);
}
}
上面的代码正在创建弹出窗口,如下所示。
我正在尝试实现“For 7.6 cc”和“To 7.6 cc”的功能。当我单击“到 7.6 cc”时,图表应该从“0 到 7.6”比例删除,剩余部分应该在那里。同样适用于“从 145 cc”点击,它必须从“145 到 150(刻度结束)”中删除图表。
单击“To”用于删除图表的起始部分,单击“From”用于删除图表的结束部分。
我试过这样,但我无法得到我想要的。
void From_Click(object sender, EventArgs e)
{
if (!checkBoxIsTime.Checked)
{
var destBitmap = mainTChart.Export.Image.Bitmap.Clone(new Rect(0, 0, 100, 200), sourceBitmap.PixelFormat);
}
}
void To_Click(object sender, EventArgs e)
{
}
即使我也尝试过这段代码
void mainTChart_GetLegendRect(object sender, mainTChart.GetLegendRectEventArgs e)
{
Rectangle cropRect = e.Rectangle;
Bitmap legendImg = new Bitmap(cropRect.Width, cropRect.Height);
using (Graphics g = Graphics.FromImage(legendImg))
{
g.DrawImage(chartBmp, new Rectangle(0, 0, mainTChart.Width, mainTChart.Height),
cropRect,
GraphicsUnit.Pixel);
}
}
没有什么对我有用。任何人都可以帮助我完成这项任务。
提前致谢。
当我将 X 轴作为时间进行编辑时,我无法通过鼠标单击获得显示时间。我尝试过的代码如下所示
DateTime dt;
dtFromTo = mainTChart.Series[0].XScreenToValue(e.X);
DateTime.TryParse(dtFromTo.ToString(), out dt);
mainTChart.ContextMenu = new ContextMenu();
mainTChart.ContextMenu.MenuItems.Add(new MenuItem("From " + dt.TimeOfDay.ToString() ));
mainTChart.ContextMenu.MenuItems.Add(new MenuItem("To " + dt.TimeOfDay.ToString()));
我得到了这样 的结果,如上图所示,但希望在鼠标右键单击时显示等效时间。我为这个变量“dtFromTo”获得了一些价值,比如 41322.9876587965”,但我无法将该值转换为时间。请帮助我。