2023/02/15(Wed) 08:48:21 編集(投稿者)
■No101382 (エビ さん) に返信
> Button1
> np.BringToFront()
> end sub
>
> ユーザーコントロール
> Button1
> Form1.textbox1.text="0"
> end sub
なんだか意味不明です。
既定のインスタンスを使ってるんですね。
簡単にやるなら Program.cs を次のように書き換えます。
static class Program
{
public static Form1 Form1 { get; set; }
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 = new Form1();
Application.Run(Form1);
}
}
ユーザーコントロールからは、
Program.Form1.textBox1.Text = "0";
のように使います。
# textBox1 の Modifiers プロパティを public または internal にしてください。
ですが、これでは部品として切り出すことが難しいものになってしまいます。
ユーザーコントロールに対象となる TextBox のプロパティを作成し、
そのプロパティ経由で使うのが良いと思います。
public partial class UserControl1 : UserControl
{
public UserControl1() {
InitializeComponent();
}
public TextBox Target { get; set; }
private void button1_Click(object sender, EventArgs e) {
Target.Text = "0";
}
}
public partial class Form1 : Form
{
private UserControl1 a = new UserControl1();
public Form1() {
InitializeComponent();
a.Target = textBox1;
}
}