熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

TreeView 拖動的下橫線

2013-11-13 10:05:12  來源: .NET編程 

  對於treeview 節點的拖動網上有很多不想再多寫了我把自己地址貼出來x?ArticleID=&TypeID=

  我實現的效果

  

  我想說的是拖動的下橫線

  最初的想法是通過拖動繪圖的方法這種方法可以實現不過要刷新特別多對於用gdi+繪圖方法不知道

  大家怎樣處理讓刷新減少一點的方法?請指教

  由於gid+繪圖刷新的問題我只好想到一些比較笨的方法用一個label來實現一條細線的效果

  label 細線看起來不好看自己繪圖的個控件得了下面是我繪圖一個控件的主要代碼( )  


    Imports SystemDrawing   
    Imports SystemDrawingDrawingD   
    Imports SystemCollections   
    Imports SystemCollectionsGeneric   
    Imports SystemComponentModel   
    Imports SystemDrawingImaging   
    Public Class SplitLine   
        Sub New()   
             此調用是 Windows 窗體設計器所必需的   
            InitializeComponent()   
      
             在 InitializeComponent() 調用之後添加任何初始化   
            SetStyle(ControlStylesAllPaintingInWmPaint True)   
            SetStyle(ControlStylesResizeRedraw True)   
            SetStyle(ControlStylesUserPaint True)   
            SetStyle(ControlStylesOptimizedDoubleBuffer True)   
        End Sub  
      
        Dim _color As Color = ColorRed   
         _   
        Public Property MyColor() As Color   
            Get  
                Return _color   
            End Get  
            Set(ByVal value As Color)   
                _color = value   
            End Set  
        End Property  
      
        Protected Overrides Sub OnPaint(ByVal e As SystemWindowsFormsPaintEventArgs)   
            MyBaseOnPaint(e)   
      
            Dim br As New SolidBrush(MyColor)   
            Dim g As Graphics = eGraphics   
            Dim path As New GraphicsPath   
            Dim path As New GraphicsPath   
            Dim path As New GraphicsPath   
            pathAddLine(New Point( ) New Point( ))   
            pathAddLine(New Point( ) New Point( ))   
            pathAddLine(New Point( ) New Point( ))   
            pathCloseAllFigures()   
      
            pathAddLine(New Point(MeWidth   ) New Point(MeWidth ))   
            pathAddLine(New Point(MeWidth ) New Point(MeWidth ))   
            pathAddLine(New Point(MeWidth ) New Point(MeWidth   ))   
            pathCloseAllFigures()   
      
            pathAddRectangle(New Rectangle(  MeWidth   ))   
            pathCloseAllFigures()   
      
            Dim pen As New Pen(ColorBlack )   
            gFillPath(br path)   
            gFillPath(br path)   
            gFillPath(br path)   
      
            Dim re As New Region(path)   
            reUnion(path)   
            reUnion(path)   
            MeRegion = re   
        End Sub  
      
    End Class  


From:http://tw.wingwit.com/Article/program/net/201311/12515.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.