-1

私は2つのユーザーコントロールを持っていImportますDailyReport。インポートユーザーコントロールにはコンボボックスが含まれており、DailyReport編集や保存などのイベントがあります。編集ボタンをクリックすると、ユーザーコントロールにあるコンボボックスを無効にしたいと思いますImportDailyReportユーザーコントロールはユーザーコントロールにありImportます。

DailyReport ユーザーコントロールで次のコードを試しました。

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

どうすればできますか?

4

3 に答える 3

2

最初のフォーム内では、このようなものがあります。

public delegate void ButtonClickedEvent(object sender);
public event ButtonClickedEvent Form1ButtonClicked;

private void button1_Click(object sender, EventArgs e)
{
    if (Form1ButtonClicked != null)
    {
        Form1ButtonClicked(sender);
    }
}

2番目のフォームでは、このようなものになります。

public Form2()
{
    InitializeComponent();

    Form1 f = new Form1();
    f.Form1ButtonClicked += new Form1.ButtonClickedEvent(f_Form1ButtonClicked);
    f.Show();
}

void f_Form1ButtonClicked(object sender)
{
    comboBox1.Enabled = false;
}
于 2013-08-23T11:40:55.203 に答える
0

フォーム コンストラクターで、 ImportDailyReportユーザー コントロールの オブジェクトを1 つだけ作成する必要があります。

フォームに 2 つのメソッドを追加する

  1. Importオブジェクトを引数として受け入れる

Void DisableDailyReportCombo(Import objImport)

{

objDailyReport .Combobox.enabled=false;

}

  1. DailyReportobject引数として受け入れる

Void DisableImportCombo(DailyReport objDailyReport )

{

objDailyReport .Combobox.enabled=false`

}

各メソッドで適切な機能を処理する

つまり、Importユーザー コントロールからイベントが発生したときに、引数オブジェクトを指定してDisableImportComboメソッドを呼び出し、コンボ ボックスを無効にします。DailyReport

于 2013-08-23T11:44:30.833 に答える
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);
        }
    }
}
于 2013-08-23T11:41:44.053 に答える