Я работаю с приложением формы Windows в C#. Я установил лицензионную версию 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 см3», он должен удалить диаграмму с «145 до 150 (конец шкалы)».
Нажмите «Кому», чтобы удалить стартовую часть диаграммы и нажмите «От», чтобы удалить конечную часть диаграммы.
Я так пробовал, но я не могу получить то, что хочу.
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 «но я не могу преобразовать это значение вовремя. Пожалуйста, помогите мне.
Большое спасибо за вашу помощь, он отлично работает. Но у меня есть еще одно небольшое сомнение, которое я добавил еще одну функцию для всплывающего окна, которое называется «Сброс». Когда я нажимаю «Сброс», он должен выполнить отмену операции. вы можете помочь мне с этим, пожалуйста. – reddy
Можете ли вы дать представление о том, как реализовать функциональность «перезагрузки». – reddy
спасибо за ваш ответ, теперь я реализовал «перезагрузку» также на основе вашей идеи. спасибо alot – reddy