【问题标题】:how to make a Custom CheckButton on TileContainer checked false DevExpress如何使 TileContainer 上的自定义 CheckButton 检查为 false DevExpress
【发布时间】:2013-02-11 08:38:45
【问题描述】:

我在 TileContainer 上有一个 CheckButton。 我在 CheckButton 的 Checked 事件上显示了一个弹出菜单。 现在,我需要在事件结束时取消选中 CheckButton。

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

【问题讨论】:

  • 请提供按钮初始化代码...

标签: winforms microsoft-metro devexpress devexpress-windows-ui


【解决方案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);
}

【讨论】:

  • 无法将“DevExpress.XtraBars.Docking2010.Views.WindowsUI.TileContainer”类型的对象转换为“DevExpress.XtraBars.Docking2010.WindowsUIButton”类型。
猜你喜欢
  • 2021-07-21
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多