0

我正在尝试在我的标题下方画一个大约 10-15 像素厚的思考下划线。我尝试添加一个图片框,然后绘制到它,但它没有被绘制到屏幕上。有没有更好的方法来做到这一点,或者让我的方法奏效?

谢谢!

using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
   {
        public Form1()
        {
            InitializeComponent();            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Graphics g = pictureBox1.CreateGraphics();
            Pen selPen = new Pen(Color.Black);
            g.DrawRectangle(selPen, 0, 0, 700, 15);
            g.Dispose();
        }
    }
}
4

3 回答 3

0

不要使用 CreateGraphics(),因为它是一个临时表面,在表单刷新时会被擦除。

相反,处理 Form/Control 的 Paint() 事件并使用提供e.Graphics的绘图。

于 2013-10-07T22:48:18.823 回答
0

您的代码不起作用的原因是您无法从 1 个加载事件中提取。将您的代码放入另一个事件或按钮中,它将正常工作。

于 2013-10-07T22:46:41.430 回答
0

在 WinForms 中使用粗线的一个常见技巧是创建一个Labelwith BorderStyleset to FixedSingle(您可以尝试使用其他边框)和Height = 1Width视情况而定)。您可以在设计器中绘制所有这些,或者尝试使用其他一些“退化”控件 -Panel使用适当的视觉设置。

其他选项当然是使用 cusstromUserControl或处理/覆盖OnPaint事件并在方法提供的图形上绘制Control.CreateGraphics(无需放在PictureBox表单上)。

于 2013-10-07T22:37:46.417 回答