2014-07-14 3 views
-1

사용자가 양식에 그려지는 타원의 너비와 높이를 조절할 수있는 프로그램을 작성하고 싶습니다. 이 코드는 MouseMove 이벤트 핸들러로 작성타원의 너비 늘리기

using (Graphics graphics = CreateGraphics()) 
{ 
    graphics.FillEllipse(new SolidBrush(colorDlg.Color), e.X, e.Y, x, y); 
} 

: 여기에 내 현재 코드입니다. 문제는 단추 또는 menustrip을 클릭하여 너비, x 및 높이, y를 늘릴 수있게하려는 것입니다. 이러한 컨트롤에 대한 이벤트 핸들러는 MouseEventArgs를 인수로 허용하지 않으므로 컴파일러에서 e.X 및 e.Y에 오류가 발생합니다.

유용한 아이디어를 환영합니다. 감사. 이 같은

+0

다른 x와 y를 의미합니다 (e.X와 e.Y가 아님) – user3656168

답변

2

시도 뭔가 : 두/decrese 폭을 증가하고 두/감소 높이를 증가 :

private int x; 
private int y; 
private int width; 
private int height; 

private SomeForm() 
{ 
    // Initialize ellipse position and size with some values 
    ... 
} 

private void btnIncreaseWidth_Click(object sender, EventArgs e) 
{ 
    width += 5; // Increase width by 5 pixels 
    Invalidate(); 
} 

private void btnDecreaseWidth_Click(object sender, EventArgs e) 
{ 
    width -= 5; // Decrease width by 5 pixels 
    Invalidate(); 
} 

private void btnIncreaseHeight_Click(object sender, EventArgs e) 
{ 
    height += 5; // Increase height by 5 pixels 
    Invalidate(); 
} 

private void btnDecreaseHeight_Click(object sender, EventArgs e) 
{ 
    height -= 5; // Decrease height by 5 pixels 
    Invalidate(); 
} 

private void SomeForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e) 
{ 
    Graphics g = e.Graphics; 
    g.FillEllipse(new SolidBrush(colorDlg.Color), x, y, width, height); 
} 

이것은 당신이 4 개 버튼이 가정합니다. 버튼을 누르면 각 치수가 변경되고 양식의 내용이 무효화됩니다 (=> 다시 그리기).

+0

나는 이것을 시도해보고 작동하는지 알려 줄 것입니다. 감사합니다 – user3656168

+0

매력처럼 작동합니다. 고마워요. – user3656168

+2

@ user3656168 이렇게하면 질문 옆에있는 체크 표시를 클릭하여 동의합니다. – LarsTech

관련 문제