C# 확인란이 다른 양식에서 확인되었는지 확인하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1410923

  •  05-07-2019
  •  | 
  •  

문제

C#을 사용하고 있는데 기본 양식의 확인란이 확인되었는지 확인하고 싶습니다. 코드를 실행하는 경우 문제는 클래스 파일에 있습니다 (양식 없음 파일은 클래스 파일이 정확합니다. ?). 이것을하는 가장 쉬운 방법은 무엇입니까?

감사합니다 Jamie

도움이 되었습니까?

해결책

가장 좋은 방법은 a를 만드는 것입니다 boolean 노출되는 형태의 속성 Checked 의 가치 CheckBox.

public bool OptionSelected
{
    get { return checkBox.Checked; }
    set { checkBox.Checked = value; } // the set is optional
}

다른 팁

양식에 대한 참조가 필요하며 양식은 확인란 (또는 확인란과 상담하는 속성)을 노출시켜야합니다.

이와 관련하여 UI 프로그래밍과 비 UI 프로그래밍에는 차이가 없습니다. 어떻게 요청할 것인가 Name a의 속성 Person 다른 클래스의 인스턴스? 인스턴스에 대한 참조를 받고 관련 속성을 요청합니다.

따라서 양식에 대한 참조가 필요하며 다음 중 하나입니다.

bool checked = form.IsAdultCheckbox.Checked;
bool checked = form.IsAdult; 

(여기서 IsAdult 재산이 반환됩니다 someCheckbox.Checked.)

실제 속성 이름이 여기에서 잘못되었을 수 있습니다 (예 : Checked 반환 할 수 없습니다 bool)하지만 나는 당신이 아이디어를 얻기를 바랍니다.

속성과의 인터페이스를 정의하고 양식이 인터페이스를 구현하고 확인란을 확인한 경우 True를 반환 하고이 인터페이스의 인스턴스를 클래스로 전달할 수 있습니까?

예를 들어:

interface IMyFormFlag
{
    bool IsChecked { get; }
}

public class MyForm : Form, IMyFormFlag
{
    CheckBox chkMyFlag;

    bool IsChecked { get { return chkMyFlag.Checked; } }
}

public class MyObject
{
    public void DoSomethingImportant(IMyFormFlag formFlag)
    {
        if (formFlag.IsChecked)
        {
            // do something here
        }
    }
}

개인적으로, 나는 세트를 사용하거나 얻는 것을 좋아하지 않습니다. 나는 이것을 좋아했다 :

if (checkBox.IsChecked.Equals(true))
{
//insert code here
}

당신은 이것을 사용할 수 있습니다. 그것은 나에게 잘 작동합니다

    if (Convert.ToBoolean(CheckBox1.IsChecked))
      {
         MessageBox.Show("true");
      }
    else
       {
         MessageBox.Show("false"); 
       }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top