2012-06-13 37 views
1

如何在下面的代碼中檢查Control ^是否是Button?檢查控件是否是C++/cli中的按鈕

System::Void DisableControls(Control ^parent) 
{ 
    for each (Control^ c in parent->Controls) 
    { 
     if(c== /*Check for Button*/) 
     { 
     //Do something 
     } 
    } 
} 

回答

2

你沒有指定是否使用的WinForms或WPF。 WinForms按鈕System.Windows.Forms.Button沒有任何內置子類,但WPF按鈕System.Windows.Controls.Button確實有一些子類,如果您使用的是其中一個子類,那麼如果與typeid進行比較,則會錯過它。相反,我會做動態投射(相當於C#中的as關鍵字),並檢查null。

Button b = dynamic_cast<Button^>(c); 
if(b != nullptr) { ... } 
+0

你打算測試'b',而不是'c',對嗎? –

+0

哎呀,很對。固定。 –

相關問題