CompactFramework를 사용하여 WinCE 응용 프로그램을 만들고 있습니다.다른 클래스의 컨트롤 속성을 변경하십시오.
저는 Form1과 Class1을 가지고 있습니다. Form1에는 Class1에서 액세스해야하는 label1이 있습니다.
내가하려고하면 :
Form1.label1
가 표시되지 않습니다, 나는 대중에게 수정 속성을 설정에도 불구하고.
라벨에 액세스하려면 어떻게해야합니까?
도움 주셔서 감사합니다.
CompactFramework를 사용하여 WinCE 응용 프로그램을 만들고 있습니다.다른 클래스의 컨트롤 속성을 변경하십시오.
저는 Form1과 Class1을 가지고 있습니다. Form1에는 Class1에서 액세스해야하는 label1이 있습니다.
내가하려고하면 :
Form1.label1
가 표시되지 않습니다, 나는 대중에게 수정 속성을 설정에도 불구하고.
라벨에 액세스하려면 어떻게해야합니까?
도움 주셔서 감사합니다.
를 반환하는 레이블 때문에이 코드를 확인 정적이 아닙니다.
var myForm = new Form1(); myForm.label1.Text = "hello";
분명히 응용 프로그램에서 양식을 만들었 기 때문에 클래스에서 새 양식을 만들고 싶지 않습니다.
따라서 양식을 수업에 전달해야합니다. 양식에 의해 클래스가 인스턴스화됩니까? 그렇다면 클래스에 "this"를 전달하여 인스턴스화 된 양식에 대한 참조를 보낼 수 있습니다.
하지만 실제로 유지 관리가 어렵 기 때문에이 작업을 원하지 않습니다. 클래스가 자신을 업데이트하기 위해 양식에 가입 할 수있는 일종의 이벤트를 발생하게하는 것이 더 좋을 것입니다.
당신 말이 맞았습니다. 제 라벨을 업데이트 할 행사를 만듭니다. 당신의 도움을 주셔서 감사합니다! –
Form1을 Class1로 인스턴스화 한 다음이 인스턴스를 사용하여 Form1.label1을 설정할 수 있습니다. 이것은 우아한 해결책이 될 것입니다. , Form1 클래스에 속성 또는 메서드를 만들 수
public partial class Form1 : Form
{
public Label Label1 { get; set; }
public void Caller()
{
MyClass cls = new MyClass();
cls.Form1 = this;
cls.DoSomeJob();
}
}
public class MyClass
{
public Form1 Form1 { get; set; }
public void DoSomeJob()
{
Form1.Label1.Text = "Some text...";
}
}
에 한번이 문제는 Form1에 클래스임을, 그리고 그 클래스의 인스턴스를 필요 LABEL1 객체에게
label1 속성의 코드를 게시하십시오. –