のスコープで直接参照する場合はmyClass
、静的として宣言します。
または、 のインスタンスが必要ですがForm1
、クラス定義スコープでそれへの参照を宣言することはできません。Form1
のメンバーに割り当てることができるコンストラクター (または型初期化子) でのインスタンスをインスタンス化する必要がありますmyClass
。
namespace Calculator {
public partial class Form1: Form {
public Form1() {
InitializeComponent();
}
class myclass {
TextBox textBox3=Form1.textBox1;
TextBox textBox4;
Form1 form1;
public myclass() {
form1=new Form1();
textBox4=form1.textBox2;
}
}
static public System.Windows.Forms.TextBox textBox1;
public System.Windows.Forms.TextBox textBox2;
}
}
アップデート:
の現在のインスタンスに関してはForm1
、インスタンス化時に現在のインスタンスを渡すさまざまな方法の 1 つを次に示します。myclass
namespace Calculator {
public partial class Form1: Form {
public Form1() {
InitializeComponent();
textBox1=textBox2; // demonstration for "static make sense"
var x=new Form1.myclass {
form1=this
};
// now x.textBox3 is reference to textBox2
}
public class myclass {
TextBox textBox3=Form1.textBox1;
TextBox textBox4;
internal Form1 form1;
public myclass() {
// form1=new Form1();
textBox4=form1.textBox2;
}
}
static public System.Windows.Forms.TextBox textBox1;
public System.Windows.Forms.TextBox textBox2;
}
}