2013-12-19 65 views
0

我嘗試使用UserControl開發應用程序。我的MainForm上有一個TableLayoutPanel動態地爲不同的UserControls充電。其中一個UserControl包含一個FlowLayoutPanel,其中動態加載按鈕。開始時,此FlowLayoutPanel(帶有12個按鈕)爲Enabled = false。我的問題是,如果我點擊我的MainForm上的一個按鈕,我想從我的UserControl的FlowLayoutPanel(有12個按鈕)變爲Enabled = true。我的FlowLayoutPanel(有12個按鈕)的狀態爲Enabled = true,但我的FlowLayoutPanel和我的按鈕未激活。狀態是好的,但實際上我不能點擊我的按鈕,因爲他們不活躍。我會忘記一些事情嗎?這不可能嗎?UserControls並激活按鈕

下面是我的一些代碼:

public void OpenCaisseDialog() 
{ 
    System.Windows.Forms.DialogResult OpenCashDialog = new DialogResult(); 
    OpenCaisseForm OCF = new OpenCaisseForm(); 
    OpenCashDialog = OCF.ShowDialog(); 
    if(OpenCashDialog == System.Windows.Forms.DialogResult.OK) 
    { 
     if ((Convert.ToInt32(OCF.tbMontantOuverture.Text)) > 0) 
     { 
     PanelTables.Controls.Clear(); 
     PanelTables.Enabled = true; 
     PanelTables.Refresh(); 
     } 
     else 
     { 
     MessageBox.Show("La somme en caisse est égale à 0"); 
     } 
    } 
    PanelTables.Refresh(); 
} 

感謝您的幫助。我試過你的代碼,但我不知道我是否使用它。我這樣做:

public void OpenCaisseDialog() 
    { 
     System.Windows.Forms.DialogResult OpenCashDialog = new DialogResult(); 
     OpenCaisseForm OCF = new OpenCaisseForm(); 
     OpenCashDialog = OCF.ShowDialog(); 

     if(OpenCashDialog == System.Windows.Forms.DialogResult.OK) 
     { 
      if ((Convert.ToInt32(OCF.tbMontantOuverture.Text)) > 0) 
      { 
       PanelTables.Enabled += MyFlowLayoutPanel_EnabledChanged(); 
       PanelTables.Refresh(); 
      } 
      else 
      { 
       MessageBox.Show("Sum isn't equals 0"); 
      } 
     } 
     PanelTables.Refresh(); 
    } 


    private void MyFlowLayoutPanel_EnabledChanged() 
    { 
     foreach(Control c in this.PanelTables.Controls) 
     { 
      c.Enabled = this.PanelTables.Enabled; 
     } 
    } 

我有該行一個錯誤:PanelTables.Enabled + = MyFlowLayoutPanel_EnabledChanged();

「+ =不能與BOOL和void類型使用」是不是好,我用你的代碼?

我使用什麼類型?

謝謝

回答

0

很難從您的代碼中知道。 嘗試手動做

MyFlowLayoutPanel.Enabled += MyFlowLayoutPanel_EnabledChanged(); 

private void MyFlowLayoutPanel_EnabledChanged() 
{ 
    foreach(Control c in MyFlowLayoutPanel.Controls) 
    { 
     c.Enabled = MyFlowLayoutPanel.Enabled; 
    } 
} 
+0

您好,感謝您的幫助。 – Paintbox