たぶん3日で飽きる

A鯖(旧E鯖)lichtのDOLプレイ記とかDOL用ツールとか。DOLは無期限休止中。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

PREV | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | -------- --:-- | comments(-) | TOP↑

≫ EDIT

【VB.NET】RichTextBoxスクロール時にフリーズ

現在バージョンアップ作業中のツールでRichTextBoxを使用しているんですが、そのスクロール時にフリーズが発生。
フリーズといっても固まりっぱなしで復活しないわけではないんですが、OSごと数十秒は動かなくなります。
スクロールバーをマウスでつかんでスクロールさせたときは大丈夫だけど、ホイールはNG。



前のバージョンで同じことをしてみたら発生しなかったので、今回修正した箇所のどこかに問題がある。
ということでソースのDIFFをとったりグーグル先生で調べたりしたら、それっぽい情報を発見。

スクロールが表示されるとOSが固まってしまう。- @IT

うん、今回発生した事象ほぼそのまんまだね。

FormのOpacityプロパティとTransparencyKeyプロパティの設定、あとビデオカードの相性?の問題っぽい。
試しにOpacityを設定しないで(1にして)動かしてみたら、フリーズせず。
それ以上深くは調べなかったけど、もしかしたら.NET Frameworkを最新版にしたり、OSのバージョン次第では解決できてたりするのかもしれない。

さて原因がわかったところで、今作ってるツールをどうするか考えよう。
Opacityはフォームの透明度を設定するプロパティ。
TransparencyKeyはフォーム上の特定の色を透過させるプロパティ。
どちらもソレを無くすと動かなくなるようなクリティカルなものではないんだけど、あったほうが便利。
できれば両方とも使いたい。
でも両立しない環境が存在する。

で、ぱっと出てきた案は以下。

 ①知らん、自己責任で使え。
 ②どちらかの機能を実装しない。
 ③どちらか片方をONにしたらもう一方をOFFにして、同時に使えないようにする。

うーん、イマイチ。

で、もうちょっとマジメに考えまして。
③に『安全弁』的なスイッチをつける方法を思いつきました。
 ・安全弁をONにしたときは、片方をONにしたらもう一方を自動的にOFFにする。
 ・安全弁をOFFにしたときは、両方同時にONにできる。
 ・あとは使用する人が自分の環境に合わせて、安全弁をONにするかOFFにするか設定すればよろし。
一度試してみないと、自分の環境がどっちなのかなんてわからないけどね。
でもまぁ、これが限界かなぁ~。



そんな機能つけたところで、私のマシンでダメなのは変わらないんだけどな( ゚Д゚)

| VB.NET | 2009-12-30 22:35 | comments:0 | TOP↑















非公開コメント

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。