2013-03-26 2 views
1

В usercontrol у меня есть некоторые объекты (textbox, combobox и т. Д.). В форме у меня есть кнопка, которая показывает или скрывает некоторые объекты из usercontrol. Я пытаюсь вызвать метод из usercontrol, но он не работает. Мой код:метод вызова в форме от usercontrol

UserControl:

public void MinimMaxim() 
{ 
    _txtName.Visible = true; 
    _txtPackage.Visible = true; 
    _panelButton.Visible = false; 
    _txtBody.Visible = false; 
    _btnPlus.Visible = false; 
} 

и в форме:

//method that creates taskcontrols at every button click 
private void _buttonAdd_Click(object sender, EventArgs e) 
{ 
    TaskControl task= new TaskControl(); 
} 
//call function from usercontrol 
private void button_Click(object sender, EventArgs e) 
{ 
    task.MinimMaxim = true; 
} 
+1

'MinimMaxim' функция или свойство вас UserControl? –

+1

Это функция – Viva

+0

Скомпилирован ли этот код без ошибок? –

ответ

2

Я попробовал ответ Фрилансера, и он сработал.

управление пользователем Класс

using System; 
using System.Windows.Forms; 

namespace SOF_15631067 
{ 
    public partial class UserControl1 
     : UserControl 
    { 
     public UserControl1() 
     { 
      InitializeComponent(); 
     } 

    private void UserControl1_Load(object sender, EventArgs e) 
    { 

    } 

    public void MinimMaxim() 
    { 
     _txtName.Visible = true; 
     _txtPackage.Visible = true; 
     _panelButton.Visible = false; 
     _txtBody.Visible = false; 
     _btnPlus.Visible = false; 
    } 
} 

}

Форма класс

using System; 
using System.Windows.Forms; 

namespace SOF_15631067 
{ 
    public partial class Form1 
: Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     userControl11.MinimMaxim(); 
    } 
} 

}

если мы создаем этот UserControl на время выполнения ответа будет;

using System; 
using System.Windows.Forms; 

namespace SOF_15631067 
{ 
    public partial class Form1 : Form 
    { 
     UserControl1 uc1 = new UserControl1(); 
    public Form1() 
    { 
     InitializeComponent(); 

     **Controls.Add(uc1);** 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     uc1.MinimMaxim(); 
     // userControl11.MinimMaxim(); 
    } 
} 

}

4

метод вызова по ссылаюсь следующий код через пользовательский элемент управления >>

yourUserControlName.methodName(); 

Я думаю, что в вашем это может быть:

yourUserControlName.MinimMaxim(); 
3

Задача, которую вы создаете, является локальной переменной для метода _buttonAdd_Click. К нему нельзя получить доступ ни по какому-либо другому методу. Он должен быть переменной-членом, если вы хотите, чтобы его использовали из других методов.

+1

Как я могу сделать ее переменной-членом? Большое спасибо! – Viva

2

Чтобы получить доступ к элементам управления в пользовательском управлении, я обычно выставляю некоторые свойства этого элемента управления, и с главной страницы я могу использовать свойства для управления с контролем.

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