在C#中,我有一個窗體(使用winforms),其中有一個Gridview數據。當我將鼠標懸停在GridView中的一個單元格上時,我使用MouseEnter和MouseLeave事件彈出另一個窗體,其中包含一個圖像。我使用的DrawImage放置此用下面的代碼:我可以在彈出窗體,圖像和文本中繪製兩件事嗎?
private void frm_MouseOverPicture_Paint(object sender, PaintEventArgs e)
{
Point MyPoint = new Point(250, 10);
Point MySecondPoint = new Point(10,10);
Font myFont = sender as Font;
Brush myBrush = sender as Brush;
Rectangle myRect = new Rectangle(250, 10, 500, 500);
Graphics g = e.Graphics;
Graphics g2 = e.Graphics;
Bitmap MyBitmap = new Bitmap(@"C:\Javie\IMAP0001.jpeg");
//g.DrawImage(MyBitmap, MyPoint.X, MyPoint.Y);
g.DrawImageUnscaledAndClipped(MyBitmap, myRect);
//g.DrawString("Hi", myFont, myBrush, MySecondPoint);
e.Graphics.DrawString("hi", myFont, myBrush, mySecondPoint);
}
我的問題是,當我嘗試,然後使用一個單獨的DrawString方法添加字符串,在彈出的窗體中它得到一個大紅色的X作爲如果我不能用相同的形式繪製兩件東西(這只是一個控件,對吧?)。
這不會解決你的主要問題,但如果你不處理位圖,你最終會有內存泄漏。將它封裝在'using'語句中,或者(更好),將該位圖加載到加載的本地字段中,然後在每次繪製表單時不必從文件加載它。 –
__不要調用'DataGridView'' GridView'!這是錯誤的,令人困惑和必然會得到錯誤的答案,浪費每個人的時間。總是用他們的__right__名稱來稱呼事情!是的,它需要更多__four__字母才能打字,但在這裏尋求幫助時__not__時間太懶了! - – TaW