更新wxTextCtrl而不会打扰滚动位置

时间:2012-07-13 16:54:57

标签: wxwidgets

我有一个静态多行wxTextCtrl。内容比窗口显示的行数多,因此滚动。当我的程序更新特定行的内容时,滚动会移动,以便更新可见。这对于可能一直在检查另一条线路的用户来说是令人不安的。

// k is line to update
// update is new line contents

        myTxtCtrl->Replace(
            myTxtCtrl->XYToPosition(0,k),
            myTxtCtrl->XYToPosition(0,k+1),
            update + L"\n");

// the control has now scrolled to ensure line k is visible

如何禁用此行为,或强制控件在更新到显示的先前可见部分后返回?

1 个答案:

答案 0 :(得分:0)

也许无法做到?似乎很可能只会遇到相当大的麻烦。更改为使用wxListCtrl可能更容易,wxListCtrl的项目可以轻松更改而不会影响滚动位置。

这就是我所做的

            myListCtrl->SetItem(k,0,update);