我可以画两个东西在一个弹出式,图像和文本
本文关键字:弹出式 一个 图像 文本 两个 我可以 | 更新日期: 2023-09-27 18:11:11
在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在它,如果我不能画两个东西在同一形式(这只是一个控件,对吧?)。
myFont和myBrush对象看起来不正确。试一试:
Font myFont = (sender as Form).Font;
Brush myBrush = new SolidBrush((sender as Form).ForeColor);
...
e.Graphics.DrawString("hi", myFont, myBrush, MySecondPoint);
假设sender是一个Form,或者直接创建它们:
using (Font myFont = new Font("Arial", 16))
{
using (Brush myBrush = new SolidBrush(Color.Blue))
{
using ( Bitmap MyBitmap = new Bitmap(@"C:'Javie'IMAP0001.jpeg"))
{
...
g.DrawString("hi", myFont, myBrush, MySecondPoint);
}
}
}