我有两个用户控件Import
和DailyReport
。导入用户控件包含一个组合框,DailyReport
有一些事件,如编辑和保存。当我点击编辑按钮我想要禁用Import
用户控件上的combox。 DailyReport
用户控件位于Import
用户控件上。
我已尝试在DailyReport usercontrol中使用以下代码。
public delegate void EditButtonClickEventHandler(object sender, EventArgs e);
public event EditButtonClickEventHandler OnEditClick;
private void actionControlDRD_EditEvent(object sender, EventArgs e)
{
if (OnEditClick != null)
{
OnEditClick(sender, e);
}
}
我该怎么做?
答案 0 :(得分:2)
在第一种形式中我会有这样的东西。
public delegate void ButtonClickedEvent(object sender);
public event ButtonClickedEvent Form1ButtonClicked;
private void button1_Click(object sender, EventArgs e)
{
if (Form1ButtonClicked != null)
{
Form1ButtonClicked(sender);
}
}
在第二种形式中我会有类似的东西。
public Form2()
{
InitializeComponent();
Form1 f = new Form1();
f.Form1ButtonClicked += new Form1.ButtonClickedEvent(f_Form1ButtonClicked);
f.Show();
}
void f_Form1ButtonClicked(object sender)
{
comboBox1.Enabled = false;
}
答案 1 :(得分:0)
private void EnableDisableControls(Control.ControlCollection Controls, bool state)
{
foreach (Control c in Controls)
{
c.Enabled = state;
if (c is ComboBox)
{
// do something here with comboBoxes
}
if (c.Controls.Count > 0)
{
this.EnableDisableControls(c.Controls, state);
}
}
}
答案 2 :(得分:0)
您必须在表单构造函数中为导入, DailyReport 用户控件创建一个且仅一个对象
以
的形式添加两个方法Import
对象作为参数Void DisableDailyReportCombo(导入objImport)
{
objDailyReport .Combobox.enabled = false;
}
DailyReportobject
作为参数Void DisableImportCombo(DailyReport objDailyReport)
{
objDailyReport .Combobox.enabled = false`
}
并处理每种方法中的相应功能
即,当Import
用户控件引发事件时,使用参数DailyReport
对象调用 DisableImportCombo 方法并禁用组合框