|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
creating a grid !!I am trying to make a plane to create a graph, I have been working on it for a day now and I can't figure it out, the problem is that one of the drawstring doesn't write the number under the lines and one of the line, for some reason, it is not proportional !! Thank you, ------------------------Start User control-------------------------- Imports System.ComponentModel Imports System.Drawing Public Class graph Public Structure Xcord Public x As Integer Public xMin As Integer Public xMax As Integer End Structure Public xGridRes As Integer = 1 Public yGridRes As Integer = 1 Dim Points() As PointF Public y As Integer Dim xcordnate As Xcord <Category("Graph"), Browsable(True), Description("Set xScale"), DefaultValue(5)> _ Public Property xScale() As Integer Get Return xGridRes End Get Set(ByVal value As Integer) xGridRes = value End Set End Property <Category("Graph"), Browsable(True), Description("Set yScale"), DefaultValue(5)> _ Public Property yScale() As Integer Get Return yGridRes End Get Set(ByVal value As Integer) yGridRes = value End Set End Property Private Sub graph_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint Dim xPen As New Pen(Color.Blue) Dim PrimaryLine As New Pen(Color.Blue, 2) Dim xcounter As Integer = 0 Dim WinRect As Rectangle = New Rectangle(0, 0, Me.Width - 1, Me.Height - 1) Dim Margin As Integer = 25 Dim XLabelCounter As Integer = xGridRes Dim YLabelCounter As Integer = yGridRes Dim xRes, yRes As Integer xRes = Me.Height / xGridRes yRes = Me.Width / yGridRes Dim Width As Integer = Me.Width Dim Height As Integer = Me.Height e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias 'Create Boarder Rect e.Graphics.DrawRectangle(Pens.Black, WinRect) 'Create Primary lines e.Graphics.DrawLine(PrimaryLine, Margin, Height - Margin, Margin, 0) e.Graphics.DrawLine(PrimaryLine, Margin, Height - Margin, Width, Height - Margin) 'Create Horizontal lines, Dim xLabel As Integer xLabel = (Height - Margin) / XLabelCounter For xcounter = (Height - Margin) To 0 Step -xRes xLabel = xLabel - System.Math.Abs(XLabelCounter) e.Graphics.DrawLine(xPen, Margin, xcounter, Width, xcounter) e.Graphics.DrawString(CStr(xLabel), New Font("Verdana", 5), Brushes.AliceBlue, xcounter + Margin, Height - Margin) Next 'Create Vertical lines ! xLabel = (Width - Margin) / YLabelCounter For xcounter = (Width - Margin) To 0 Step -yRes xLabel = xLabel + System.Math.Abs(YLabelCounter) e.Graphics.DrawLine(xPen, Margin + xcounter, 0, xcounter + Margin, Height - Margin) e.Graphics.DrawString(CStr(xLabel), New Font("Verdana", 5), Brushes.AliceBlue, 10, xcounter - (Height / 2)) Next e.Graphics.Flush() End Sub Public Sub New() ' This call is required by the Windows Form Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. End Sub Protected Overrides Sub Finalize() MyBase.Finalize() End Sub End Class Rohanji,
I suggest you to use this graph control instead: http://zedgraph.org/wiki/index.php?title=Main_Page Its one of the best controls ever developed. Hope it helps.
Passing data from one VB.Net application to another
Detect mouse movement from minimized application Build a Program Now! VB2005 Help with System.Timers.Timer in a module Is this the most efficient/fastest code to use? (beginner sql question) how to do this? "File is being used by another process" - error Form & Designer File Becoming Separated Issues with scope on a text box after .net conversion from vb6 C++ Help for .NET programmer |
|||||||||||||||||||||||