1

我正在向使用Win32::GUI创建的文本字段输出一些内容,如下所示:

$Object->AddTextfield(
        -name   => "Birthchart",
        -left   => 75,
        -top    => 90,
        -width  => 250,
        -height => 250,
        -vscroll =>1,
        -multiline => 1,
        -prompt => "Birthchart",        
    );


    {#do something here....
     }
$Object->Birthchart->Append($Content);

问题是:它会自动将我带到输出的末尾,但我想从头开始读取输出而不必向上滚动。以后向下滚动就可以了。

我可以使用以下代码

$Object->Birthchart->GetFirstVisibleLine();

获取最高可见行的编号,但如何将最高可见行的编号设置为 0?

代码 $Object->Birthchart->ResetFirstVisibleLine() 不起作用。

有什么建议么?提前致谢。

更新

尝试了以下代码

$Object->Birthchart->ScrollPos(1,0);

但它仍然不起作用。滚动条似乎已重置,但我仍然必须单击滚动条才能查看文本字段内容的开头。

4

1 回答 1

1

解决我的问题:

my @sel =$Object->Birthchart->GetSel();
$Object->Birthchart->Append($Content);
$Object->Birthchart->SetSel(@sel);
$Object->Birthchart->ScrollCaret();
$Object->Birthchart->SetFocus();

ScrollPos 似乎重置了滚动条位置但内容没有更新的原因是因为 ScrollPos() 只作用于滚动条。它不会更新文本字段的内容。

非常感谢 Anonymous Monk @perlmonks.org :) 原始答案在这里

于 2010-01-01T02:52:03.317 回答