Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cli DevExpress ExtraEditors checkedcombobox不';不同步?_C++ Cli_Devexpress_Checked - Fatal编程技术网

C++ cli DevExpress ExtraEditors checkedcombobox不';不同步?

C++ cli DevExpress ExtraEditors checkedcombobox不';不同步?,c++-cli,devexpress,checked,C++ Cli,Devexpress,Checked,我正在尝试使用两个devExpress checkedComboBox(框)来维护列表及其反列表(即,两个组合框中的项目相同,并且必须仅在其中一个列表中选中它们) 我使用的是C++/CLI,因此对于我处理的每个框 EditValueChanged += gcnew System::EventHandler(this, &SelectionControl::exclBox_EditValueChanged); 这就需要 void box_ToggleAntibox( DevExpress

我正在尝试使用两个devExpress checkedComboBox(框)来维护列表及其反列表(即,两个组合框中的项目相同,并且必须仅在其中一个列表中选中它们)

我使用的是C++/CLI,因此对于我处理的每个框

EditValueChanged += gcnew System::EventHandler(this, &SelectionControl::exclBox_EditValueChanged);
这就需要

void
box_ToggleAntibox(
DevExpress::XtraEditors::CheckedComboBoxEdit^ box,
DevExpress::XtraEditors::CheckedComboBoxEdit^ antibox )
{
using namespace DevExpress::XtraEditors::Controls ;

cli::array<String ^> ^ sAnti = gcnew cli::array<String ^>(2*box->Properties->Items->Count) ;
int ii = 0;
String ^ delim = ", ";
for each (CheckedListBoxItem^ i in box->Properties->GetItems()) {
    if (i->CheckState==Windows::Forms::CheckState::Unchecked)
    {
        sAnti[ii] = i->Value->ToString();
        ++ii;
        sAnti[ii] = delim;
        ++ii;
    }
}

String ^ result = String::Concat(sAnti);
antibox->EditValue = result;

}
void
包装箱(
DevExpress::XtraEditors::CheckedComboBoxEdit^box,
DevExpress::XtraEditors::checkedComboBox编辑^antibox)
{
使用命名空间DevExpress::XtraEditors::控件;
cli::array ^sAnti=gcnew cli::array(2*box->Properties->Items->Count);
int ii=0;
字符串^delim=“,”;
对于每个(在框->属性->GetItems()中选中ListBoxItem ^i){
如果(i->CheckState==Windows::Forms::CheckState::Unchecked)
{
sAnti[ii]=i->Value->ToString();
++二,;
sAnti[ii]=delim;
++二,;
}
}
String^result=String::Concat(sAnti);
反框->编辑值=结果;
}
正如devExpress文档所说,设置编辑值,而不是简单地遍历框列表并将反列表设置为!检查过了

但是,它似乎不起作用(将正确的项目添加到文本窗口中,但未检查任何内容)。此外,如果我在事件结束后查看我的框,我会发现文本窗口中的字符串值是正确的(反映了我选择的内容),但是如果我打开它,那么所有项目都被选中

有人有什么建议我可以试试吗

设置每个项目的CheckState::Checked是否更好


谢谢

我花了一些时间与DevExpress支持人员交谈。简而言之,这应该是可行的——但对我们来说不是。您的里程数可能会有所不同,但我们的解决方案是将两个组合框放在表单上的单独控件上。

如果我使用
antibox->SetEditValue(result)
则两个选项均未选中,文本窗口中也未显示任何内容。