1

在用户控件中,我有一些对象(textboxcombobox等)。在表单中,我有一个按钮,可以显示或隐藏用户控件中的一些对象。我正在尝试从 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;
}
4

4 回答 4

4

通过用户控件引用以下代码调用方法>>

yourUserControlName.methodName();

我认为你的情况可能是:

yourUserControlName.MinimMaxim();
于 2013-03-26T06:57:33.100 回答
3

您创建的任务变量是 _buttonAdd_Click 方法的局部变量。无法从任何其他方法访问它。如果您希望在其他方法中使用它,它必须是成员变量。

于 2013-03-26T06:57:52.000 回答
2

我尝试过 Freelancer 的回答,它奏效了。

用户控制类

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();
    }
}

}

于 2013-03-26T07:47:50.943 回答
2

要访问用户控件中的控件,我通常会公开该控件的一些属性,并且可以从主页中使用属性来使用控件。

于 2013-03-26T06:58:43.240 回答