DOBON.NET DOBON.NETプログラミング掲示板過去ログ

TextBoxについて

  • 題名: TextBoxについて
  • 著者: 初心者C++
  • 日時: 2011/08/17 18:30:35
  • ID: 28899
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[VC++CLI 2008]
分類:[.NET]

少し前の方が似たような質問でしたが

this->textBox1->Select(totalcount,LineLength[nowrow]);
this->textBox1->Focus();
this->textBox1->ScrollToCaret();
totalcount+=LineLength[nowrow];

こんな感じでスクロールしているのですが、Selectしている文字列を
テキストボックスの縦方向の中央に表示したいのですが
良い方法はないでしょうか?

お願いします。
  • 題名: Re[1]: TextBoxについて
  • 著者: じゃんぬねっと
  • 日時: 2011/08/18 13:04:15
  • ID: 28907
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No28899に返信(初心者C++さんの記事)
> 少し前の方が似たような質問でしたが
>
> this->textBox1->Select(totalcount,LineLength[nowrow]);
> this->textBox1->Focus();
> this->textBox1->ScrollToCaret();
> totalcount+=LineLength[nowrow];
>
> こんな感じでスクロールしているのですが、Selectしている文字列を
> テキストボックスの縦方向の中央に表示したいのですが
> 良い方法はないでしょうか?
>
> お願いします。

方法はありますよね。

ScrollToCaret メソッドを使いたいのであれば、textBox1 で見た目上表示されている行数 / 2 を加味したに一旦カレットを移動させておいて、ScrollToCaret メソッドを呼ぶ。 その後に本来選択状態にしたい位置を Select メソッドで指定する。

当たり前ですが、先頭の場合、末尾の場合を考慮しないと不自然になります。

DOBON.NET | プログラミング道 | プログラミング掲示板