2013-10-07 5 views
0

나는 약 10-15 px 두께의 내 머리말 밑에 밑줄을 그려야한다. 그림 상자를 추가하고 그림을 그려 보았지만 화면에 그려지지 않았습니다. 이 방법이나 내 방법을 작동시키는 방법이 더 좋은 방법이 있습니까?두꺼운 밑줄이나 직사각형을 그리는 방법?

감사합니다.

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(); 
     } 
    } 
} 
+0

도구 상자를 조금 더 검색 한 결과 원하는 사각형을 찾았습니다. – Nathan

답변

0

윈폼에서 굵은 선을 가진위한 일반적인 트릭은 LabelFixedSingle로 설정 BorderStyleHeight = 1 (Width 적절한) (다른 테두리 실험 할 수있다) 만드는 것입니다. 디자이너에서이 모든 것을 그릴 수 있으며 적절한 시각적 설정을 사용하여 다른 "축퇴"컨트롤 (Panel)을 사용하려고 할 수 있습니다.

다른 옵션은 물론/처리 OnPaint 이벤트를 무시하고 Control.CreateGraphics 방법 (폼 PictureBox 넣을 필요없이)에 의해 제공되는 그래픽을 드로잉 custrom UserControl를 사용하거나한다.

+0

BorderStyle이 FixedSingle과 Height = 1로 설정된 레이블을 시도했지만, 단지 내가 필요로하는 10-15px 두께의 선이 아니라 1 또는 2px 두께의 선을 제공했습니다. CreateGraphics 메서드를 사용하려면이 코드를 어디에 넣어야합니까? 나는 다른 게시물에서 찾은 코드를 사용하여 시도했지만 아무 것도하지 않습니다 ... – Nathan

+0

'패널'을 시도해보십시오 - 원하는대로 두껍게 만들 수 있습니다. 그리기 - 코드를 OnPaint 이벤트에 넣으십시오. – BartoszKP

+0

@ user2856410 'OnPaint' 이벤트 설명에 대한 링크로 답변을 업데이트했습니다. 거기에 그림이 그려져 있습니다. 첫 번째는'PictureBox'가없는'Form'을 직접 그립니다. – BartoszKP

0

코드가 작동하지 않는 이유는 1 개의로드 이벤트에서 캐논을 꺼낼 수 있기 때문입니다. 코드를 다른 이벤트 나 단추에 넣으면 제대로 작동합니다.

+0

어디에서 프로그램을 시작할 때 바로 실행하고 싶습니다. – Nathan

0

임시 양식이 새로 고침되면 지워지므로 CreateGraphics()를 사용하지 마십시오.

대신 양식/컨트롤의 Paint() 이벤트를 처리하고 제공된 e.Graphics을 사용하여 그릴 수 있습니다.

관련 문제