最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > asp教程

The Netron Project For vb.net 技巧

日期:08-11    来源:中国设计秀    作者:cnwebshow.com

Netron是一个用于实现类似简单Visio图形化功能的C#开源项目,作者在2006年停止了2.5版的更新,随后在2007年发布了3.0版。网络上也出现了基于2.5版的轻量版,相对来说简单很多,虽然可以用来入门学习,但被阉割过的项目总显得有些无味。3.0版相对2.5版来说是质的飞跃,但的的确确确确实实实实在在太“重量”了,所以研究学习2.5版是最折中的选择。TPL中国设计秀
TPL中国设计秀
我已经把原版的C#源码转换成VB.net,这样对VBFans来说也许是件令人鼓舞的事情。除了语言上的转换之外,还对项目中原有的bug和不足做了如下的小范围修改。TPL中国设计秀
TPL中国设计秀
(魏滔序原创,转帖请注明出处。)TPL中国设计秀
TPL中国设计秀
DiagramControl:删除选中的项目TPL中国设计秀
TPL中国设计秀
添加方法:TPL中国设计秀
TPL中国设计秀
    Public Sub RemoveSelectedItems()TPL中国设计秀
TPL中国设计秀
            For i As Int32 = SelectedItems.Count - 1 To 0 Step -1TPL中国设计秀
TPL中国设计秀
                Controller.Model.Remove(SelectedItems(i))TPL中国设计秀
TPL中国设计秀
            NextTPL中国设计秀
TPL中国设计秀
            Me.Invalidate()TPL中国设计秀
TPL中国设计秀
        End SubTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
Selecttion:执行DiagramControl.SelectedItems.Clear时反选TPL中国设计秀
TPL中国设计秀
        PRivate Shared Sub RaiseonNewSelection()TPL中国设计秀
TPL中国设计秀
            RemoveHandler mSelection.OnClear, AddressOf OnShowTrackerTPL中国设计秀
TPL中国设计秀
            RemoveHandler mSelection.OnItemRemoved, AddressOf OnShowTrackerTPL中国设计秀
TPL中国设计秀
            AddHandler mSelection.OnClear, AddressOf OnShowTrackerTPL中国设计秀
TPL中国设计秀
            AddHandler mSelection.OnItemRemoved, AddressOf OnShowTrackerTPL中国设计秀
TPL中国设计秀
            RaiseEvent OnNewSelection(Nothing, EventArgs.Empty)TPL中国设计秀
TPL中国设计秀
        End SubTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
        Private Shared Sub OnShowTracker(ByVal sender As Object, ByVal e As EventArgs)TPL中国设计秀
TPL中国设计秀
            Controller.View.ShowTracker()TPL中国设计秀
TPL中国设计秀
        End SubTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
CollectionBase:从索引移除项目时触发OnItemRemoved事件TPL中国设计秀
TPL中国设计秀
        Public Sub RemoveAt(ByVal index As Integer)TPL中国设计秀
TPL中国设计秀
            Dim Item As T = Me.innerList(index)TPL中国设计秀
TPL中国设计秀
            Me.innerList.RemoveAt(index)TPL中国设计秀
TPL中国设计秀
            RaiseonItemRemoved(Item) TPL中国设计秀
TPL中国设计秀
        End SubTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
Connection:禁止连线缩放(去除缩放点和选中矩形框)TPL中国设计秀
TPL中国设计秀
        Public Sub New(ByVal mFrom As Point, ByVal mTo As Point, ByVal model As IModel)TPL中国设计秀
TPL中国设计秀
            MyBase.New(model)TPL中国设计秀
TPL中国设计秀
            MyBase.Resizable = FalseTPL中国设计秀
TPL中国设计秀
            Me.From = New Connector(mFrom, model)TPL中国设计秀
TPL中国设计秀
            Me.From.Name = "From"TPL中国设计秀
TPL中国设计秀
            Me.From.Parent = MeTPL中国设计秀
TPL中国设计秀
            Me.To = New Connector(mTo, model)TPL中国设计秀
TPL中国设计秀
            Me.To.Name = "To"TPL中国设计秀
TPL中国设计秀
            Me.To.Parent = MeTPL中国设计秀
TPL中国设计秀
        End SubTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
View:Resizable = False 时去除获得焦点的选中矩形框TPL中国设计秀
TPL中国设计秀
        Public Shared Function GetTracker(ByVal rectangle As Rectangle, ByVal type As TrackerTypes, ByVal showHandles As Boolean) As ITrackerTPL中国设计秀
TPL中国设计秀
            Select Case typeTPL中国设计秀
TPL中国设计秀
                Case TrackerTypes.DefaultTPL中国设计秀
TPL中国设计秀
                    If defTracker Is Nothing ThenTPL中国设计秀
TPL中国设计秀
                        defTracker = New DefaultTracker()TPL中国设计秀
TPL中国设计秀
                    End IfTPL中国设计秀
TPL中国设计秀
                    If showHandles ThenTPL中国设计秀
TPL中国设计秀
                        defTracker.Transform(rectangle)TPL中国设计秀
TPL中国设计秀
                    ElseTPL中国设计秀
TPL中国设计秀
                        defTracker.Transform(Nothing)TPL中国设计秀
TPL中国设计秀
                    End IfTPL中国设计秀
TPL中国设计秀
                    defTracker.ShowHandles = showHandlesTPL中国设计秀
TPL中国设计秀
                    Return defTrackerTPL中国设计秀
TPL中国设计秀
                Case ElseTPL中国设计秀
TPL中国设计秀
                    Return NothingTPL中国设计秀
TPL中国设计秀
            End SelectTPL中国设计秀
TPL中国设计秀
        End FunctionTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TransformTool:实现鼠标移动时自动变换指针图标TPL中国设计秀
TPL中国设计秀
在 Public Sub MouseMove(ByVal e As MouseEventArgs) Implements IMouseListener.MouseMove 的过程中添加:TPL中国设计秀
TPL中国设计秀
            If e.Button = MouseButtons.None AndAlso Enabled AndAlso (Not IsSuspended) ThenTPL中国设计秀
TPL中国设计秀
                If Selection.SelectedItems.Count > 0 ThenTPL中国设计秀
TPL中国设计秀
                    Dim gripPoint As Point = Me.Controller.View.Tracker.Hit(e.Location)TPL中国设计秀
TPL中国设计秀
                    Dim c As Cursor = NothingTPL中国设计秀
TPL中国设计秀
                    Select Case gripPoint.XTPL中国设计秀
TPL中国设计秀
                        Case -1TPL中国设计秀
TPL中国设计秀
                            Select Case gripPoint.YTPL中国设计秀
TPL中国设计秀
                                Case -1TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeNWSETPL中国设计秀
TPL中国设计秀
                                Case 0TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeWETPL中国设计秀
TPL中国设计秀
                                Case 1TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeNESWTPL中国设计秀
TPL中国设计秀
                            End SelectTPL中国设计秀
TPL中国设计秀
                        Case 0TPL中国设计秀
TPL中国设计秀
                            Select Case gripPoint.YTPL中国设计秀
TPL中国设计秀
                                Case -1TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeNSTPL中国设计秀
TPL中国设计秀
                                Case 1TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeNSTPL中国设计秀
TPL中国设计秀
                            End SelectTPL中国设计秀
TPL中国设计秀
                        Case 1TPL中国设计秀
TPL中国设计秀
                            Select Case gripPoint.YTPL中国设计秀
TPL中国设计秀
                                Case -1TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeNESWTPL中国设计秀
TPL中国设计秀
                                Case 0TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeWETPL中国设计秀
TPL中国设计秀
                                Case 1TPL中国设计秀
TPL中国设计秀
                                    c = Cursors.SizeNWSETPL中国设计秀
TPL中国设计秀
                            End SelectTPL中国设计秀
TPL中国设计秀
                    End SelectTPL中国设计秀
TPL中国设计秀
                    Controller.View.CurrentCursor = cTPL中国设计秀
TPL中国设计秀
                End IfTPL中国设计秀
TPL中国设计秀
            End IfTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TransformTool:缩放图形完成时刷新视图TPL中国设计秀
TPL中国设计秀
        Public Sub MouseUp(ByVal e As MouseEventArgs) Implements IMouseListener.MouseUpTPL中国设计秀
TPL中国设计秀
            If IsActive ThenTPL中国设计秀
TPL中国设计秀
                DeactivateTool()TPL中国设计秀
TPL中国设计秀
                Dim cmd As New TransformCommand(Me.Controller, origin, scalex, scaley, transformers)TPL中国设计秀
TPL中国设计秀
                      Me.Controller.UndoManager.AddUndoCommand(cmd)TPL中国设计秀
TPL中国设计秀
                      Me.Controller.View.Invalidate()TPL中国设计秀
TPL中国设计秀
            End IfTPL中国设计秀
TPL中国设计秀
        End SubTPL中国设计秀
TPL中国设计秀
TPL中国设计秀
TPL中国设计秀
ShapeBase:限制图形的最小高度和宽度为10像素TPL中国设计秀
TPL中国设计秀
        Public Overridable Sub Transform(ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer) Implements IShape.TransformTPL中国设计秀
TPL中国设计秀
            Dim a, b As DoubleTPL中国设计秀
TPL中国设计秀
            Dim p As PointTPL中国设计秀
TPL中国设计秀
            If width <= 10 Or height <= 10 Then Exit SubTPL中国设计秀
TPL中国设计秀
            For Each cn As IConnector In Me.mConnectorsTPL中国设计秀
TPL中国设计秀
                a = Math.Round((CDbl(cn.Point.X) - CDbl(mRectangle.X)) / CDbl(mRectangle.Width), 1) * width + x - cn.Point.XTPL中国设计秀
TPL中国设计秀
                b = Math.Round((CDbl(cn.Point.Y) - CDbl(mRectangle.Y)) / CDbl(mRectangle.Height), 1) * height + y - cn.Point.YTPL中国设计秀
TPL中国设计秀
                p = New Point(Convert.ToInt32(a), Convert.ToInt32(b))TPL中国设计秀
TPL中国设计秀
                cn.Move(p)TPL中国设计秀
TPL中国设计秀
            Next cnTPL中国设计秀
TPL中国设计秀
            mRectangle = New Rectangle(x, y, width, height)TPL中国设计秀
TPL中国设计秀
        End SubTPL中国设计秀

本文引用地址:/bc/article_46205.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明