[c# 윈폼] checkbox.enable = false 값 프로그램 종료시 지속관련여부 문제입니다 ㅠㅠ

fkqpfwl121의 이미지

안녕하세요. c# 윈폼관련해서 이문제 때문에 몇날몇일을 고민하고 있는 학생입니다.

현재 하고자 하는것은 form1에서 체크한 체크박스를 버튼을 누르고 나면 form2의 text에 form1에서 체크한 체크박스의 이름이

나오게 하는 소스를 만들고, 프로그램을 껏다가 켰을때도 처음에 체크박스에 체크를 했던 값들이 enable = false로 쭉 남겨지게 하고 싶은데

다 온것 같은 느낌은 드는데 어떻게 enable값을 false로 프로그램을 종료시에도 남겨둬야할지 잘 모르겠습니다. <사진첨부 했습니다>

지금 접근한 곳은 마지막에 프로그램을 종료시키고 다시 켰을떄 그 체크박스 값이 남아있으면 되는건데 잘 되질 않습니다.

하아.. 현재 풀어나가려고 생각하는 방향은 파일스트림 관련해서 이 파일을 읽어들였을때 파일이 존재한다면, 체크박스의 enable = false값을 남겨두고,

파일이 없다면, 모든 체크박스의 값들을 전부 enable = true로 남기고 싶은데 잘 안됩니다.

파일스트림으로 한 이유는, 파일쓰기를 했을떄 회원정보들이 남아있으면 예매한 checkbox 좌석들이 있는것이니까 계속해서 체크를 하도록 enable = false값

으로 남기고, 파일읽기 실패시 처음 예매를 하는 부분이니까 모든 checkbox의 값을 새롭게 enable = true로 초기화를 해주려고 파일스트림을 쓰게 되었습니

다.

// 파일이 없을 때
if (!File.Exists(REGISTER_FILE_NAME))
{
MessageBox.Show("데이터베이스에 저장되지 않은 정보입니다.", "알림", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

바로 위의 소스들을 사용해서 어떻게 사용해야 할것 같은데 감이 안오네요 ..

하려고 하는게 예매관련 프로그램이다 보니까, 고객들이 예매한 좌석의(체크박스)의 존속 여부를 남길지 말지를 정해야 하는 부분인데 이걸

어떻게 처리해야할지 참으로 어렵습니다 ㅠㅠ.. 도움 부탁드립니다.

폼1과 폼2의 소스를 따로 구별해서 아래에 올리겠습니다.

@@@@ 우선 폼1 입니다. @@@@

namespace WindowsFormsApplication999
{
public partial class Form1 : Form
{

// private const string REGISTER_FILE_NAME = "Register.txt";

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
CheckBox[] cbs = new CheckBox[3];

int checkBoxIndex = 0;

//모든 컨트롤 갯수 만큼 for문을 돌림, 체크박스 뿐아니라 버튼, 라벨까지 전부 포함
for (int i = 0; i < this.Controls.Count; i++)
{
if (this.Controls[i] is CheckBox)
{
cbs[checkBoxIndex++] = (CheckBox)this.Controls[i];
}
}

// 체크된 체크박수 갯수 알아냄
int arrayLength = 0;
for (int i = 0; i < cbs.Length; i++)
{
if (cbs[i].Checked)
{
arrayLength++;
}
}

// 그리고 표시된 체크박스라면 args배열에 이름을 차례대로 저장을 한다.
string[] args = new string[arrayLength];
int argsIndex = 0;

for (int i = 0; i < cbs.Length; i++)
{
if (cbs[i].Checked)
{
args[argsIndex++] = cbs[i].Text;
cbs[i].Enabled = false;
}
}


Form2 fm = new Form2(args,argsIndex);
fm.Show();

}
}
}

@@@@ 그리고 폼2의 소스입니다 @@@@

namespace WindowsFormsApplication999
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

public Form2(String[] st,int n)
{
InitializeComponent();

for (int i = 0 ; i < n ; i++)
{
textBox1.Text = textBox1.Text + st[i].ToString() ;

}
}

private void textBox1_TextChanged(object sender, EventArgs e)
{

}

private void Form2_Load(object sender, EventArgs e)
{

}

}
}

File attachments: 
첨부파일 크기
Image icon abcd.png171.6 KB

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.