イベントとパブリック プロパティを使用します。デザイナーに各項目を追加しているように聞こえるので、イベント ハンドラーを接続し、名前を割り当ててユーザー コントロールのプロパティにアクセスし、後で見つけることができます。これは非常に大まかな例ですが、うまくいくでしょう。
ユーザーコントロール
public partial class MyCustomUserControl : UserControl
{
public event EventHandler<EventArgs> MyCustomClickEvent;
public MyCustomUserControl()
{
InitializeComponent();
}
public bool CheckBoxValue
{
get { return checkBox1.Checked;}
set { checkBox1.Checked = value; }
}
public string SetCaption
{
get { return groupBox1.Text;}
set { groupBox1.Text = value;}
}
private void button1_Click(object sender, EventArgs e)
{
MyCustomClickEvent(this, e);
}
}
フォーム1
public partial class Form1 : Form
{
int count =1;
public Form1()
{
InitializeComponent();
}
private void mcc_MyCustomClickEvent(object sender, EventArgs e)
{
((MyCustomUserControl)sender).CheckBoxValue = !((MyCustomUserControl)sender).CheckBoxValue;
}
private void button1_Click(object sender, EventArgs e)
{
MyCustomUserControl mcc = new MyCustomUserControl();
mcc.MyCustomClickEvent+=mcc_MyCustomClickEvent;
mcc.Name = "mmc" + count.ToString();
mcc.SetCaption = "Your Text Here";
flowLayoutPanel1.Controls.Add(mcc);
count += 1;
}
private void button2_Click(object sender, EventArgs e)
{
var temp = this.Controls.Find("mmc1", true);
if (temp.Length != 0)
{
var uc = (MyCustomUserControl)temp[0];
uc.SetCaption = "Found Me";
}
}
}