Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。
Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。
言語はC#です.現在あるシステムを,Visual Studio のWindows Form アプリケーションを利用して開発しています.その中で,あるクラス(Mainとは別)において,ある変数の値によって,ピクチャーボックスに適当な図(簡単な長方形で良い)を表示させたいと考えています.例えば変数の値が0であれば図は表示していない状態,変数の値が1であれば図が表示されている状態という風にしようと考えています.
つまり,プログラムの処理が進む中で,ピクチャーボックスが動的に変化するようにしたいです.
class Class1
{
public void Practice()
{
int a = 1;
int b = 2;
int c = 3;
if (b == 2)
{
Form2 form = new Form2();
form.DrawRec();
}
System.Threading.Thread.Sleep(2000);
if (a == 1)
{
Form2 form2 = new Form2();
form2.DrawNothing();
}
}
}
1usingSystem.ComponentModel;2usingSystem.Runtime.CompilerServices;34namespaceQuestions2810635{6publicclassClass1:INotifyPropertyChanged7{8// ちょっと冗長なのですが、通知する変数はこのようにする必要があります9publicint A {get=> _A;set=>Set(ref _A,value);}10privateint _A;1112publicint B {get=> _B;set=>Set(ref _B,value);}13privateint _B;1415publicint C {get=> _C;set=>Set(ref _C,value);}16privateint _C;171819publicvoidRun()20{21 A =1;// AをON22 System.Threading.Thread.Sleep(1000);23 A =0;// AをOFF24 B =1;25 C =1;26 System.Threading.Thread.Sleep(1000);27 B =0;28 System.Threading.Thread.Sleep(1000);29 C =0;30}3132// 定型コードなので気にしないで結構です33#region INotifyPropertyChanged34publiceventPropertyChangedEventHandler PropertyChanged;35protectedvoidSet<T>(refT storage,Tvalue,[CallerMemberName]string propertyName =null)36{37if(Equals(storage,value))return;38 storage =value;39OnPropertyChanged(propertyName);40}41protectedvoidOnPropertyChanged(string propertyName)=> PropertyChanged?.Invoke(this,newPropertyChangedEventArgs(propertyName));42#endregion43}44}