我正在使用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);
但它仍然无效。滚动条似乎已重置,但我仍然需要单击滚动条才能查看文本字段内容的开头。
答案 0 :(得分: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 :),原始答案为here。