none
DataRepeaterのちらつきを抑える方法を教えてください RRS feed

  • 質問

  • 初心者です。

    あるテーブルから検索した結果を1行2段の一覧で表示をしたく、
    Visual Basic PowerPackの「DataRepeater」を使用して表示させています。

    しかし、検索する度に画面がちらついて見えます。
    よく見ると、「TextBox」や「Label」等はちらついておらず、
    「DataRepeater」「LineShape」等のVisual Basic PowerPackのツールがちらついていました。
    SuspendLayout~ResumeLayoutを記載してもちらつきが直りませんでした。

    ①このちらつきを抑える方法はありますでしょうか。

    ②1行2段の一覧を表示する方法はDataRepeater以外にもありますでしょうか。
     (DataGridViewでは、1行1段しか表示できないと認識しています)



    環境:Microsoft Visual Studio Community 2019
             Version 16.5.0
    言語:VB.NET
    DB  :Oracle 11g R2
    2020年4月1日 1:29

すべての返信

  • ①このちらつきを抑える方法はありますでしょうか。
    DataRepeaterは項目内のコントロールを作りなおしたり再描画をしたりするので、ある程度はちらつきます。
    Public Class Form1
    
        <System.Runtime.InteropServices.DllImport("user32.dll")>
        Private Shared Function SendMessage(hWnd As IntPtr, msg As Integer, wParam As IntPtr, lParam As IntPtr) As IntPtr
        End Function
    
        Private Const WM_SETREDRAW As Integer = &HB
    
        Private Sub UpdateDataSource_Click(sender As Object, e As EventArgs) Handles Button2.Click
    
            SendMessage(Me.Handle, WM_SETREDRAW, IntPtr.Zero, IntPtr.Zero)
    
            Me.DataRepeater1.DataSource = Enumerable.Range(1, 1000).ToArray()
    
            SendMessage(Me.Handle, WM_SETREDRAW, New IntPtr(1), IntPtr.Zero)
            Me.Invalidate(True)
        End Sub
    End Class
    ②1行2段の一覧を表示する方法はDataRepeater以外にもありますでしょうか。
     (DataGridViewでは、1行1段しか表示できないと認識しています)

    DataGridViewでもセルにUserControlを配置すればできないこともないけれど面倒です。

    #WPFにすればとても簡単に実現できるのだけど


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2020年4月1日 8:49
  • matsubokkuriさん、こんにちは。フォーラムオペレーターのクモです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご質問いただいた件ですが、その後いかがでしょうか。
    解決した場合は、 [回答としてマーク] をお願い致します。

    解決してない場合は、コードなどを提供していただけませんか?

    お手数ですが、ご協力の程どうかよろしくお願いいたします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年4月8日 6:50
    モデレータ