2013-08-29 4 views
0

Я пытаюсь получить доступ к элементу управления (пользовательскому управлению и просто нормальному управлению), расположенному на MainForm, из UserControl, который был добавлен в MainForm.Контроль доступа в MainForm от UserControl

Я пробовал:

(this.Parent as Form).viewport.Dock = DockStyle.Fill; 

, а также:

Form1.viewport.Dock = DockStyle.Fill; 

, и я также установить Modifier собственность на обоих контролей, что мне нужно, чтобы получить доступ на MainForm к: Public, но я я до сих пор не могу получить доступ к этим элементам управления.

Как пользователь может получить доступ к элементам управления Parent в коде/времени выполнения?

+0

'viewport' не является членом' Form', он является членом вашего производного класса формы. Я полагаю, что это 'Form1'. И я настоятельно рекомендую проверить ошибки, а не просто предположить, что код будет работать и позволить ему взорваться, если это не так. –

+0

Первый метод не будет работать, потому что 'Form' не имеет члена, называемого' viewport'. –

ответ

0

Все в порядке. Я просто имея Braindead момент, я понял это:

(this.Parent as Form).Controls["TabStripContainer"].Dock = DockStyle.Fill; 
0

Попробуйте следующий код, который находится на ниже:

Get access to parent control from user control - C#

Myform

public partial class MyForm : Form 
{ 
    public MyForm() 
    { 
    InitializeComponent(); 
    this.myUserControl1.ParentForm = this; 
    } 
} 

MyUserControl

public partial class MyUserControl : UserControl 
{ 
    public MyForm ParentForm { get; set; } 

public MyUserControl() 
{ 
    InitializeComponent(); 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    if (ParentForm == null) 
     return; 

    ListBox listBox = (ParentForm.Controls["listBox1"] as ListBox); 
    listBox.Items.Add("Test"); 

} 
} 
0

я испытал это и работает отлично

((this.Parent) as Form2).uc2.Dock = DockStyle.Fill; 

где form2 есть форма, которая содержит пользовательский элемент управления UC2.

Смежные вопросы