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 に感謝します :) 元の回答はhereです。

于 2010-01-01T02:52:03.317 に答える