【发布时间】:2010-11-10 20:14:59
【问题描述】:
这应该很容易,但我做这件事很费时间。基本上我想在我的 wxListCtrl 中向上或向下移动一行。我将此发布到 wxwidgets 论坛并获得以下代码。
m_list->Freeze();
wxListItem item;
item.SetId(item_id); // the one which is selected
m_list->GetItem(item); // Retrieve the item
m_list->DeleteItem(item_id); // Remove it
item.SetId(item_id - 1); // Move it up
m_list->SetItem(item); // Apply it's new pos in the list
m_list->Thaw();
这是行不通的。该元素被删除但没有向上移动(我猜 setitem 行不起作用)。然后我想只切换文本和图像,但我什至无法可靠地从行中获取文本。我有
int index = m_right->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
wxString label = m_right->GetItemText(index);
if(index == 0)
return;
wxListItem item;
item.SetId(index);
bool success = m_right->GetItem(item);
wxString text = item.GetText();
但文本是空白的,即使有文本并且索引是正确的。所以,我什至无法完成最基本的任务。有人知道怎么做吗?代码在按钮回调中运行(用户按下一个向上箭头,我的代码执行以尝试移动它)。我在 Windows 上使用 2.9.1。
【问题讨论】: