1
이 클래스 유효성 검사기는 WinForms 프로젝트의 모든 텍스트 상자의 유효성을 검사합니다. 어떻게해야할지 모르겠다. "유효하지 않은 텍스트 상자의 경계선을 바꿀 수 없다." 그래서 같은 클래스 "Validators"에서이 LoginForm_Paint
이벤트를 사용했습니다. 나는 그것을 사용하는 방법을 모른다. 어쩌면 처음부터 거기에 있으면 안되며, 어쩌면 그것을 사용하는 방법을 모른다. 누군가 나를 기쁘게 도와 줄 수 있습니까?사각형을 텍스트 상자 테두리로 그리기
public void LoginForm_Paint(object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
Pen redPen = new Pen(Color.Red);
}
public bool ValidateTextBoxes(params TextBox[] textBoxes)
{
foreach (var textBox in textBoxes)
{
if (textBox.Text.Equals(""))
{
graphics.DrawRectangle(redPen, textBox.Location.X,
textBox.Location.Y, textBox.Width, textBox.Height);
return false;
}
}
return true;
}
를하지만 그런 식으로 작동하지 않습니다
public void LoginForm_Paint(object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
Pen redPen = new Pen(Color.Red);
}
public bool ValidateTextBoxes(params TextBox[] textBoxes)
{
foreach (var textBox in textBoxes)
{
if (textBox.Text.Equals(""))
{
textBox.BackColor = Color.Red;
return false;
}
}
return true;
}
내가합니다 (LoginForm에서처럼) 이런 식으로 사용하고 싶었다.
Graphics graphics = e.Graphics;
을 만든 인스턴스를 인식하지 못합니다. 이 방법으로 당신이 그것을에서 사용하는 외부에서 정의되기 때문에
당신이 "그것은 그런 식으로 작동하지 않습니다"에 의해 무엇을 의미합니까? 특정 오류 메시지? – pascalhein
"Graphics graphics = e.Graphics"라는 인스턴스를 인식하지 못합니다. 나는 질문을 편집했다. – Etrit
Paint 이벤트에서 가져온 e.Graphics 객체를 저장할 수 없으며 나중에 사용할 수 있습니다. Paint 이벤트의 실행이 정지 한 후에 파기됩니다. 컨트롤 테두리를 다시 그리는 것은 나쁜 아이디어입니다. 대신 BackColor 사용을 고려하십시오. –