tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルあるformから別のFormを開くと画面がちらつく
記事No776
投稿日: 2004/03/09(Tue) 18:29
投稿者にきゅ〜
[OSのVer]:Windows2000    [VBのVer]:VB.NET2003
いつもお世話になっております。
.NET Compact 1.0(SP2)を使用している者です。
問題点があって投稿します。
------------------------------------------------------------------
    Private Sub btnEnd_Click(ByVal sender As System.Object, _
                             ByVal e As System.EventArgs) _
                             Handles btnEnd.Click
        Dim MyForm As New Form1
        System.Windows.Forms.Application.DoEvents()
        MyForm.Show()

    End Sub
-------------------------------------------------------------------
上記の呼出をしてForm1の画面が開く時のちらつきを抑制しようと
思っているのですが、中々うまくいきません。
Form1にはデザイン上でTextBoxやLabelやPanelなどコントロールが貼ってあります。
尚、TextBox,PanelのBackcolorを固定で指定しています。

Form1をShowする前に上記のようにDoeventsメソッドを記述していますが、
一向に改善されません。

Form1にコントロールを結構沢山貼ってあるのが原因なのでしょうか?
それともDoEvents()の記述位置が間違いなのでしょうか?
(Form1に貼ってあるControl数
 Textbox :10個
 Label   :10個
 Panel   :10個    計30個)
対処方法知っている方教えて頂けないでしょうか。

[ツリー表示へ]
タイトルRe: あるformから別のFormを開くと画面がちらつく
記事No903
投稿日: 2004/06/10(Thu) 01:20
投稿者たくボン
まず、最初に確認したいことですが表示がちらつくのは、最初にbtnEndをクリックした時だけでしょう
か?2回目以降にはちらつきが発生しないのであれば、おそらくJITコンパイラの仕様です。

JITコンパイラは、マネージEXEのILコードから、CPUネイティブの命令にコンパイルするので最初の呼び
出しには時間がかかります。

私の環境ではコントロールを4倍の120個くらい配置したらちらつきが発生します(CPU Athlon2500+,Mem
1GB)が、2回目以降のクリックではちらつきはありません。

もし、現象がJITコンパイラによるものであれば、解決方法としてSDKと共に配布されるNGen.exeを使わ
れるのも良いかもしれません。特定のプラットフォームだけで動作させるのであれば、アセンブリに含
まれるILコードをすべてネイティブなコードに変換してくれます。

不特定多数のプラットフォームに配置する場合や、2度目以降もちらつくのであれば別の対応が必要で
す。

[ツリー表示へ]