Комбинированное окно с вкладками в виде таблицы объектов Stingray (CGXTabbedComboBox): проверка не выполняется при динамическом изменении списка выбора

  • Инициализируйте поле со вкладками со списком. Давайте назовем это
    «DefaultList».
  • Измените список выбора в GetStyleRowCol или
    Перезаписываемые функции OnLoadCellStyle. Давайте назовем это «CustomList»
  • «CustomList» отображается в поле со списком.
  • В OnValidateCell при попытке получить значение из поля со списком. Он всегда возвращается пустым. На самом деле элемент управления имеет более старый объект стиля с «DefaultList».

Проблема в том, что элемент управления, возвращаемый GetControl (nRow, nCol), всегда имеет исходный объект стиля с «DefaultList».

Среда: Stingray Studio 12.0 и Visual Studio 2015

в VS 2008 он работал нормально со Stingray Studio 2004

// Initialize the combo box
m_grid1.SetStyleRange(CGXRange().SetCols(1),
CGXStyle()
.SetControl(GX_IDS_CTRL_CBS_TABBED_DROPDOWN)
.SetChoiceList(_T("T00\t0\nT11\t1\nT22\t2\n"))
.SetUserAttribute(GX_IDS_UA_TABLIST_KEYCOL, _T("1"))
.SetUserAttribute(GX_IDS_UA_TABLIST_TEXTCOL, _T("0"))
.SetUserAttribute(GX_IDS_UA_TABLIST_SHOWALLCOLS, _T("0"))
.SetHorizontalAlignment(DT_LEFT)
);

// Change the combo box choice list
BOOL CSample2GridWnd::OnLoadCellStyle(ROWCOL nRow, ROWCOL nCol, CGXStyle & style, LPCTSTR pszExistingValue)
{
if (nCol == 1)
{
if (pszExistingValue == NULL && nRow >= GetFirstRow() && !m_bNoValueNeeded)
{
style.SetChoiceList(_T("Test 0\t0\nTest 1\t1\nTest 2\t2\n"));
style.SetValue(m_str[nRow-1]);
}
}

CGXBrowserWnd::OnLoadCellStyle(nRow, nCol, style, pszExistingValue);

return TRUE;
}

// validation routine
BOOL CSample2GridWnd::OnValidateCell(ROWCOL nRow, ROWCOL nCol)
{
if (nCol != 1)
return TRUE;

CString str;

// retrieve text from current cell
CGXControl* pControl = GetControl(nRow, nCol);
pControl->GetCurrentText(str);
str.Trim();
if (str.IsEmpty())
AfxMessageBox(_T("Please select a value from list."));

m_str[nRow-1] = str.Right(1);

return TRUE;
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]