我正在使用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