0

我在TileContainer上有一個CheckButton。 我在CheckButton的Checked Event上展示了一個PopUp菜單。 現在,我需要在事件結束時取消選中CheckButton。如何使TileContainer上的自定義CheckButton被選中false DevExpress

this.tileContainer1.Buttons.AddRange(new DevExpress.XtraEditors.ButtonPanel.IBaseButton[] { 
     new DevExpress.XtraBars.Docking2010.WindowsUIButton("ShowList", global::DMS.Properties.Resources.speech_bubble, -1, DevExpress.XtraBars.Docking2010.ButtonStyle.CheckButton, 0)}); 
+0

請提供按鈕初始化代碼... – DmitryG 2013-02-11 10:57:42

回答

1

如果我正確理解您的情況,您可以使用下面的計算策略:

WindowsUIButton checkButton = new WindowsUIButton() 
{ 
    Caption = "Check Button", 
    Style = ButtonStyle.CheckButton 
}; 
checkButton.CheckedChanged += checkButton_CheckedChanged; 
tileContainer1.Buttons.Add(checkButton); 
//... 
int reentranceCount = 0; 
void checkButton_CheckedChanged(object sender, EventArgs e) { 
    if(reentranceCount > 0) return; 
    /*do some stuff */ 
    Uncheck((WindowsUIButton)sender); 
} 
void Uncheck(WindowsUIButton button) { 
    reentranceCount++; 
    try { 
     button.Checked = false; 
    } 
    finally { reentranceCount--; } 
} 

更新:
如果您使用的是TileContiner.ButtonChecked事件中,你應該更新上面的代碼如下:

//... 
tileContainer1.ButtonChecked += tileContainer_ButtonChecked; 
//... 
void tileContainer_ButtonChecked(object sender, ButtonEventArgs e) { 
    if(reentranceCount > 0) return; 
    /*do some stuff */ 
    Uncheck((WindowsUIButton)e.Button); 
} 
+0

無法投射'DevExpress.XtraBars.Docking2010.Views.WindowsUI.TileContainer'類型的對象來鍵入'DevExpress.XtraBars.Docking2010.WindowsUIButton'。 – RealSteel 2013-02-12 02:14:02

+1

@RealSteel我已經更新了我的答案... – DmitryG 2013-02-12 10:29:56

相關問題