728x90
근태 처리과정은 다음과 같다.
1. 컴퓨터를 켜서
2. 웹을 켜서
3. 로그인을 하고
4. 근태화면으로 넘어가서
5. 근태버튼을 누르고
6. 출근 버튼을 누른다.
-------------------------------------------
마지막으로 출근 확인 버튼을 누르는 과정까지 포함한다면 7번째까지 있는것과 같다.
모바일로도 어플리케이션이 존재하지만
자동출퇴근 기능이 있는것도 아니라서
만들어 보기로 했다.
처음 셀레니움을 알기전에 검색했던 키워드는
'C# 웹 버튼 클릭'
으로 검색해서 나왔던 글들을 확인했고
프로그램의 고유 기능이 있다면 사용해보고 싶었지만
이 귀찮음을 빠르게 해결하기 위해 + 새로운 라이브러리를 사용해보고싶다는 마음으로 인해서
셀레니움을 사용하는 글을 참고해서 만들어보게 됐다.
-------------------------------------------
public Form1()
{
InitializeComponent();
Log_Info("시작");
txtList = new TextBox[] { IdText, PassText };
foreach (var txt in txtList)
{
//처음 공백 Placeholder 지정
txt.ForeColor = Color.DarkGray;
if (txt == IdText) txt.Text = IdPlaceholder;
else if (txt == PassText) txt.Text = PwPlaceholder;
//텍스트박스 커서 Focus 여부에 따라 이벤트 지정
txt.GotFocus += RemovePlaceholder;
txt.LostFocus += SetPlaceholder;
}
FormClosing += new FormClosingEventHandler(closing);
}
가장 먼저 폼형식의 부분에 대해서 설명하자면
C# 에서 텍스트 박스에 placeHolder 형식을 지원하지 않는것같아서
아이디, 패스워드를 입력할 텍스트박스에 텍스트 컬러를 입력해줬다.
아래는 아이디, 패스워드의 텍스트 박스가 비어있을때, 새로 입력할때의 동작을 정의하였다.
private void RemovePlaceholder(object sender, EventArgs e)
{
// C# placeholder 참조사이트
//https://ella-devblog.tistory.com/70
TextBox txt = (TextBox)sender;
if (txt.Text == IdPlaceholder | txt.Text == PwPlaceholder)
{ //텍스트박스 내용이 사용자가 입력한 값이 아닌 Placeholder일 경우에만, 커서 포커스일때 빈칸으로 만들기
txt.ForeColor = Color.Black; //사용자 입력 진한 글씨
txt.Text = string.Empty;
if (txt == PassText) PassText.PasswordChar = '●';
}
}
private void SetPlaceholder(object sender, EventArgs e)
{
// C# placeholder 참조사이트
//https://ella-devblog.tistory.com/70
TextBox txt = (TextBox)sender;
if (string.IsNullOrWhiteSpace(txt.Text))
{
//사용자 입력값이 하나도 없는 경우에 포커스 잃으면 Placeholder 적용해주기
txt.ForeColor = Color.DarkGray; //Placeholder 흐린 글씨
if (txt == IdText)
txt.Text = IdPlaceholder;
else if (txt == PassText)
{
txt.Text = PwPlaceholder;
PassText.PasswordChar = default;
}
}
}
private void IdText_Enter(object sender, EventArgs e)
{
if (IdText.Text == "아이디를 입력하세요")
{
IdText.Text = "";
IdText.ForeColor = Color.Black;
}
}
private void IdText_Leave(object sender, EventArgs e)
{
if (IdText.Text.Length == 0)
{
IdText.Text = "아이디를 입력하세요";
IdText.ForeColor = Color.Gray;
}
}
private bool isInfoReady()
{
if (PassText.Text == null || PassText.Text.Equals(PwPlaceholder))
{
MessageBox.Show("비밀번호를 입력해주세요", "경고");
return false;
}
return true;
}
각 텍스트박스
별로 비어있을때,
비어있지 않을때,
입력한 값이 존재했다가 없어졌을때를 조건으로 이용하여,
표시할 텍스트의 상태를 각각 따로 나타내게 하였다.
728x90
'Programming > C#' 카테고리의 다른 글
C# 셀레니움 - 웹기반 출근퇴근 자동으로 하기 - 2 버튼 클릭 (0) | 2021.06.15 |
---|---|
C# 셀레니움 - 웹기반 출근퇴근 자동으로 하기 - intro (0) | 2021.05.21 |
댓글