在usercontrol中,我有一些对象(textbox
,combobox
等)。在表单中,我有一个按钮,用于显示或隐藏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;
}
答案 0 :(得分:4)
通过用户控件>>
引用以下代码来调用方法yourUserControlName.methodName();
我认为在您的情况下可能是:
yourUserControlName.MinimMaxim();
答案 1 :(得分:3)
任务变量是_buttonAdd_Click方法的局部变量。无法从任何其他方法访问它。如果您希望从其他方法使用它,它必须是成员变量。
答案 2 :(得分:2)
要访问用户控件中的控件,我通常会公开该控件的一些属性,并且从主页面我可以使用属性来控制。
答案 3 :(得分: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();
}
}
}