// 그리고 표시된 체크박스라면 args배열에 이름을 차례대로 저장을 한다.
string[] args = new string[arrayLength];
int argsIndex = 0;
for (int i = 0; i < cbs.Length; i++)
{
if (cbs[i].Checked)
{
cbs[i].Enabled = false;
args[argsIndex++] = cbs[i].Text;
}
}
위 코드대로라면 이미 args에 체크된 체크박스의 이름이 들어간 상태입니다.
예로 1, 3번이 체크됐다면 1, 3번의 이름이 들어가겠지요?
근데 출력하는쪽에서
for (int i = 0; i < src; i++)
{
if (cbs[i].Checked)
{
prime.WriteLine(args[i]);
}
}
이런식으로 체크박스가 체크 되었는지를 또 다시 확인을 하고 있으니까요.
src는 2가 들어가 있을테니 체크박스 0, 1번이 체크되었나 확인하고, 체크 되있으면 출력하게 되겠지요?
이미 체크된 체크박스의 문자열만 들어가 있으므로 위 if (cbs[i].Checked)는 필요 없습니다.
내용추가....
가급적이면 코드를 적어드리지는 않는데요.
지금 보면 불필요한 코드가 너무 많아서 간단히 정리를 했으니까요.
한번 살펴보시고, 어떤것이 불필요했는지를 확인해 보시기 바랍니다.
System.Collections.ArrayList lstName = new System.Collections.ArrayList();
//모든 컨트롤 갯수 만큼 for문을 돌림, 체크박스 뿐아니라 버튼, 라벨까지 전부 포함
foreach (Control control in this.Controls)
{
// 체크박스라면
if (control is CheckBox)
{
// 체크되어 있다면
if(((CheckBox)control).Checked)
{
control.Enabled = false; // Disable상태로 바꾸고
lstName.Add(control.Text); // 텍스트를 저장
}
}
}
lstName.Sort(); // 텍스트를 정렬
// 파일이 없으면 만들고, 있으면 추가함
StreamWriter prime = new StreamWriter(REGISTER_FILE_NAME, true);
prime.WriteLine("--------------예약한 좌석 표시---------------");
// 체크된 이름을 파일에 출력
foreach (String name in lstName)
{
prime.WriteLine(name);
}
prime.Close();
불필요한 체크를 한번 더 하기 때문이네요.
// 그리고 표시된 체크박스라면 args배열에 이름을 차례대로 저장을 한다. string[] args = new string[arrayLength]; int argsIndex = 0; for (int i = 0; i < cbs.Length; i++) { if (cbs[i].Checked) { cbs[i].Enabled = false; args[argsIndex++] = cbs[i].Text; } }위 코드대로라면 이미 args에 체크된 체크박스의 이름이 들어간 상태입니다.
예로 1, 3번이 체크됐다면 1, 3번의 이름이 들어가겠지요?
근데 출력하는쪽에서
for (int i = 0; i < src; i++) { if (cbs[i].Checked) { prime.WriteLine(args[i]); } }이런식으로 체크박스가 체크 되었는지를 또 다시 확인을 하고 있으니까요.
src는 2가 들어가 있을테니 체크박스 0, 1번이 체크되었나 확인하고, 체크 되있으면 출력하게 되겠지요?
이미 체크된 체크박스의 문자열만 들어가 있으므로 위 if (cbs[i].Checked)는 필요 없습니다.
내용추가....
가급적이면 코드를 적어드리지는 않는데요.
지금 보면 불필요한 코드가 너무 많아서 간단히 정리를 했으니까요.
한번 살펴보시고, 어떤것이 불필요했는지를 확인해 보시기 바랍니다.
System.Collections.ArrayList lstName = new System.Collections.ArrayList(); //모든 컨트롤 갯수 만큼 for문을 돌림, 체크박스 뿐아니라 버튼, 라벨까지 전부 포함 foreach (Control control in this.Controls) { // 체크박스라면 if (control is CheckBox) { // 체크되어 있다면 if(((CheckBox)control).Checked) { control.Enabled = false; // Disable상태로 바꾸고 lstName.Add(control.Text); // 텍스트를 저장 } } } lstName.Sort(); // 텍스트를 정렬 // 파일이 없으면 만들고, 있으면 추가함 StreamWriter prime = new StreamWriter(REGISTER_FILE_NAME, true); prime.WriteLine("--------------예약한 좌석 표시---------------"); // 체크된 이름을 파일에 출력 foreach (String name in lstName) { prime.WriteLine(name); } prime.Close();오..
코딩이란 저에겐 아직까지 너무나 심오한듯 ...
감사합니다
별말씀을요.
즐프되세요.
댓글 달기