Во-первых, если вы хотите получить доступ к Control
из вашего UserControl
, вам нужно будет использовать метод FindForm()
.
Во-вторых, вам необходимо будет предоставить свой элемент управления TextBox
, например, через свойство вашей формы.
Тогда вам нужно знать тип этого Form
, возвращаемого этим FindForm()
методом.
Как только вы это знаете, вам нужно привести этот результат к правильному типу.
Итак, вот пример непроверенного псевдокода, чтобы дать вам идею:
public partial class MyMainForm {
private TextBox textBox1;
public MyMainForm() {
textBox1 = new Textbox();
textBox1.Name = @"textBox1";
textBox1.Location = new Point(10, 10);
textBox1.Size = new Size(150, 23);
this.Controls.Add(textBox1);
}
public Font MyTextBoxFont {
get {
return textBox1.Font;
} set {
if (value == null) return;
textbox1.Font = value;
}
}
}
Затем, предполагая, что вы утратили контроль над своей формой, ваш UserControl
может иметь свойство, подобное этому:
public partial class MyUserControl {
private Form GetContainerForm {
get {
return this.FindForm();
}
}
// And later on, where you need to set your TextBox's font:
private void SetContainerInputFieldFont(Font f) {
if (GetContainerForm == null) return; // Or throw, depending on what you need to do.
((MyMainForm)GetContainerForm).MyTextBoxFont = f
}
}