我正在使用c#中的Windows窗体应用程序。我已经安装了TeeChart for.net v3的行货版本。我正在尝试删除TeeChart的一些不需要的部分。
感谢stackoverflow网站的用户,他们帮助我创建了TeeChart上的鼠标点击弹出窗口。现在我想为该弹出式点击实施一些功能。
使用下面的代码,我可以创建鼠标右键单击弹出。如何删除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”的功能。 当我点击“To 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()));
我越来越喜欢这个 如在上面的图片,但要显示在鼠标等效时间右键点击我得到。我从41322.9876587965这个变量获得了一些值“dtFromTo”,但我无法将这个值转换为时间值,请帮助我。
非常感谢您的帮助,它完美的工作,但我有一个更多的小疑问,我添加了一个更多的功能弹出是“重置”。当我点击“重置”时,它必须执行撤消操作。你能帮我吗? – reddy 2013-02-22 13:06:28
你可以给一些想法如何实现“重置”功能。 – reddy 2013-02-22 13:47:59
感谢您的回答,现在我已根据您的想法实施了“重置”。非常感谢 – reddy 2013-02-23 14:31:00