مطلوب التعديل علي الكود التالي - محمد اسماعيل - 11-10-17
اولا الكود خاص بالرسم البياني اريد الاتي
1 لو كان ارتفاع الاعمدة الخاصة بالرسم البياني متغير وليس قيم ثابتة كما بالمثال يعني يضاف 7 تيكست ويتم تغير قيم 7 اعمدة منها
ويتم ايضا تغير المحور الافقي وفقا لقيمة معينةمن التيكست تقسم علي 10 عد د النقط من بدا من اول المحور الي اخرة
اريد كود ربط ارتفاع 7 اعمدة المتغير ة من تيكست7 وفقا لما يقابل قيمتها بالمحور الراسي المتغير قيمة ايضا
2- ارجاع قيمة المتغير في حدث الرسم الي بيكتشر الصورة حتي يتم طباعتها لانة عند الطباعة تظهر فارغة
الكود الخاص بالرسم البياني
PHP كود :
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim m_matrix As New Matrix(1, 0, 0, -1, 0, PictureBox1.ClientSize.Height) e.Graphics.Transform = m_matrix
Dim lgbBrush As New LinearGradientBrush(New Rectangle(0, 0, PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height), Color.Silver, Color.Azure, 90, True)
e.Graphics.FillRectangle(lgbBrush, New Rectangle(0, 0, PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height))
e.Graphics.DrawLine(Pens.Black, 50, 30, 350, 30) e.Graphics.DrawLine(Pens.Black, 50, 30, 50, 330)
For x As Integer = 0 To 10 e.Graphics.DrawLine(Pens.Green, 45, 30 + (30 * x), 50, 30 + (30 * x)) e.Graphics.DrawLine(Pens.Green, 50 + (30 * x), 25, 50 + (30 * x), 30) Next
Dim m_pens As Pen() = New Pen() {Pens.Red, Pens.Blue, Pens.Green, Pens.Red} Dim m_GraphicsSave As GraphicsState = e.Graphics.Save()
Dim m_MatrixCloned As Matrix = m_matrix.Clone()
m_MatrixCloned.Translate(50, 30)
e.Graphics.Transform = m_MatrixCloned
'-----------------------------------------------------------------------
Dim employ1 As Integer = 300 Dim employ1Brush As New SolidBrush(Color.FromArgb(150, Color.Red))
Dim employ2 As Integer = 300 / 2 Dim employ2Brush As New SolidBrush(Color.FromArgb(150, Color.Blue))
Dim employ3 As Integer = 300 / 4 Dim employ3Brush As New SolidBrush(Color.FromArgb(150, Color.Green))
Dim employ4 As Integer = 200 Dim employ4Brush As New SolidBrush(Color.FromArgb(150, Color.Yellow))
Dim employ5 As Integer = 250 Dim employ5Brush As New SolidBrush(Color.FromArgb(150, Color.Purple))
Dim employ6 As Integer = 150 Dim employ6Brush As New SolidBrush(Color.FromArgb(150, Color.Maroon))
Dim employ7 As Integer = 275 Dim employ7Brush As New SolidBrush(Color.FromArgb(150, Color.Khaki))
e.Graphics.DrawRectangle(Pens.Black, 25, 0, 10, employ1) e.Graphics.FillRectangle(employ1Brush, New Rectangle(25, 0, 10, employ1))
e.Graphics.DrawRectangle(Pens.Black, 55, 0, 10, employ2) e.Graphics.FillRectangle(employ2Brush, New Rectangle(55, 0, 10, employ2))
e.Graphics.DrawRectangle(Pens.Black, 85, 0, 10, employ3) e.Graphics.FillRectangle(employ3Brush, New Rectangle(85, 0, 10, employ3))
e.Graphics.DrawRectangle(Pens.Black, 115, 0, 10, employ4) e.Graphics.FillRectangle(employ4Brush, New Rectangle(115, 0, 10, employ4))
e.Graphics.DrawRectangle(Pens.Black, 145, 0, 10, employ5) e.Graphics.FillRectangle(employ5Brush, New Rectangle(145, 0, 10, employ5))
e.Graphics.DrawRectangle(Pens.Black, 175, 0, 10, employ6) e.Graphics.FillRectangle(employ6Brush, New Rectangle(175, 0, 10, employ6))
e.Graphics.DrawRectangle(Pens.Black, 205, 0, 10, employ7) e.Graphics.FillRectangle(employ7Brush, New Rectangle(205, 0, 10, employ7))
'-----------------------------------------------------------------------
e.Graphics.Restore(m_GraphicsSave)
For i As Integer = 10 To 100 Step 10
m_GraphicsSave = e.Graphics.Save() Dim m_MatrixOffsetY As New Matrix(1, 0, 0, -1, 25, 30 + (i / 10 * 30) + (Font.Height / 2))
m_MatrixCloned = m_matrix.Clone() m_MatrixCloned.Multiply(m_MatrixOffsetY)
e.Graphics.Transform = m_MatrixCloned e.Graphics.DrawString(i.ToString(), Font, Brushes.Black, 0, 0, StringFormat.GenericTypographic) e.Graphics.Restore(m_GraphicsSave)
Next
For s As Integer = 10 To 100 Step 10
m_GraphicsSave = e.Graphics.Save() Dim m_matrixOffsetX As New Matrix(1, 0, 0, -1, 30 + (s / 10 * 30) + (Font.Height / 2), 25) m_MatrixCloned = m_matrix.Clone() m_MatrixCloned.Multiply(m_matrixOffsetX) e.Graphics.Transform = m_MatrixCloned
e.Graphics.DrawString(s.ToString(), Font, Brushes.Black, 0, 0, StringFormat.GenericTypographic) e.Graphics.Restore(m_GraphicsSave)
Next
End Sub
RE: مطلوب التعديل علي الكود التالي - a.ahmed - 11-10-17
PHP كود :
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim m_matrix As New Matrix(1, 0, 0, -1, 0, PictureBox1.ClientSize.Height) e.Graphics.Transform = m_matrix
Dim lgbBrush As New LinearGradientBrush(New Rectangle(0, 0, PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height), Color.Silver, Color.Azure, 90, True)
e.Graphics.FillRectangle(lgbBrush, New Rectangle(0, 0, PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height))
e.Graphics.DrawLine(Pens.Black, 50, 30, 350, 30) e.Graphics.DrawLine(Pens.Black, 50, 30, 50, 330)
For x As Integer = 0 To 10 e.Graphics.DrawLine(Pens.Green, 45, 30 + (30 * x), 50, 30 + (30 * x)) e.Graphics.DrawLine(Pens.Green, 50 + (30 * x), 25, 50 + (30 * x), 30) Next
Dim m_pens As Pen() = New Pen() {Pens.Red, Pens.Blue, Pens.Green, Pens.Red} Dim m_GraphicsSave As GraphicsState = e.Graphics.Save()
Dim m_MatrixCloned As Matrix = m_matrix.Clone()
m_MatrixCloned.Translate(50, 30)
e.Graphics.Transform = m_MatrixCloned
'-----------------------------------------------------------------------
Dim hhh As Integer = 300
Dim employ1 As Integer = (Val(TextBox1.Text) / 100) * hhh
Dim employ2 As Integer = (Val(TextBox2.Text) / 100) * hhh
Dim employ3 As Integer = (Val(TextBox3.Text) / 100) * hhh
Dim employ4 As Integer = (Val(TextBox4.Text) / 100) * hhh
Dim employ5 As Integer = (Val(TextBox5.Text) / 100) * hhh
Dim employ6 As Integer = (Val(TextBox6.Text) / 100) * hhh
Dim employ7 As Integer = (Val(TextBox7.Text) / 100) * hhh
Dim employ1Brush As New SolidBrush(Color.FromArgb(150, Color.Red)) e.Graphics.DrawRectangle(Pens.Black, 25, 0, 10, employ1) e.Graphics.FillRectangle(employ1Brush, New Rectangle(25, 0, 10, employ1))
Dim employ2Brush As New SolidBrush(Color.FromArgb(150, Color.Blue)) e.Graphics.DrawRectangle(Pens.Black, 55, 0, 10, employ2) e.Graphics.FillRectangle(employ2Brush, New Rectangle(55, 0, 10, employ2))
Dim employ3Brush As New SolidBrush(Color.FromArgb(150, Color.Green)) e.Graphics.DrawRectangle(Pens.Black, 85, 0, 10, employ3) e.Graphics.FillRectangle(employ3Brush, New Rectangle(85, 0, 10, employ3))
Dim employ4Brush As New SolidBrush(Color.FromArgb(150, Color.Yellow)) e.Graphics.DrawRectangle(Pens.Black, 115, 0, 10, employ4) e.Graphics.FillRectangle(employ4Brush, New Rectangle(115, 0, 10, employ4))
Dim employ5Brush As New SolidBrush(Color.FromArgb(150, Color.Purple)) e.Graphics.DrawRectangle(Pens.Black, 145, 0, 10, employ5) e.Graphics.FillRectangle(employ5Brush, New Rectangle(145, 0, 10, employ5))
Dim employ6Brush As New SolidBrush(Color.FromArgb(150, Color.Maroon)) e.Graphics.DrawRectangle(Pens.Black, 175, 0, 10, employ6) e.Graphics.FillRectangle(employ6Brush, New Rectangle(175, 0, 10, employ6))
e.Graphics.DrawRectangle(Pens.Black, 205, 0, 10, employ7) Dim employ7Brush As New SolidBrush(Color.FromArgb(150, Color.Khaki)) e.Graphics.FillRectangle(employ7Brush, New Rectangle(205, 0, 10, employ7))
'-----------------------------------------------------------------------
e.Graphics.Restore(m_GraphicsSave)
For i As Integer = 10 To 100 Step 10
m_GraphicsSave = e.Graphics.Save() Dim m_MatrixOffsetY As New Matrix(1, 0, 0, -1, 25, 30 + (i / 10 * 30) + (Font.Height / 2))
m_MatrixCloned = m_matrix.Clone() m_MatrixCloned.Multiply(m_MatrixOffsetY)
e.Graphics.Transform = m_MatrixCloned e.Graphics.DrawString(i.ToString(), Font, Brushes.Black, 0, 0, StringFormat.GenericTypographic) e.Graphics.Restore(m_GraphicsSave)
Next
For s As Integer = 10 To 100 Step 10
m_GraphicsSave = e.Graphics.Save() Dim m_matrixOffsetX As New Matrix(1, 0, 0, -1, 30 + (s / 10 * 30) + (Font.Height / 2), 25) m_MatrixCloned = m_matrix.Clone() m_MatrixCloned.Multiply(m_matrixOffsetX) e.Graphics.Transform = m_MatrixCloned
e.Graphics.DrawString(s.ToString(), Font, Brushes.Black, 0, 0, StringFormat.GenericTypographic) e.Graphics.Restore(m_GraphicsSave)
Next
End Sub
Abu Ehab - Chart 2010
Chart control
PHP كود :
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Chart1.BorderlineDashStyle = DataVisualization.Charting.ChartDashStyle.Solid Chart1.BorderlineColor = Color.Black
Chart1.BackColor = Color.Azure Chart1.BackSecondaryColor = Color.Silver Chart1.BackGradientStyle = DataVisualization.Charting.GradientStyle.TopBottom
Chart1.Series(0).Points.Clear()
Dim p1 As New DataVisualization.Charting.DataPoint With {.Color = Color.Red} p1.SetValueXY(10, Val(TextBox1.Text))
Dim p2 As New DataVisualization.Charting.DataPoint With {.Color = Color.Blue} p2.SetValueXY(20, Val(TextBox2.Text))
Dim p3 As New DataVisualization.Charting.DataPoint With {.Color = Color.Green} p3.SetValueXY(30, Val(TextBox3.Text))
Dim p4 As New DataVisualization.Charting.DataPoint With {.Color = Color.Yellow} p4.SetValueXY(40, Val(TextBox4.Text))
Dim p5 As New DataVisualization.Charting.DataPoint With {.Color = Color.Purple} p5.SetValueXY(50, Val(TextBox5.Text))
Dim p6 As New DataVisualization.Charting.DataPoint With {.Color = Color.Maroon} p6.SetValueXY(60, Val(TextBox6.Text))
Dim p7 As New DataVisualization.Charting.DataPoint With {.Color = Color.Khaki} p7.SetValueXY(70, Val(TextBox7.Text))
Chart1.Series(0).Points.Add(p1) Chart1.Series(0).Points.Add(p2) Chart1.Series(0).Points.Add(p3) Chart1.Series(0).Points.Add(p4) Chart1.Series(0).Points.Add(p5) Chart1.Series(0).Points.Add(p6) Chart1.Series(0).Points.Add(p7)
End Sub
RE: مطلوب التعديل علي الكود التالي - محمد اسماعيل - 11-10-17
انا بشكرك جدا علي ردك بس انا بحب اعدل علي الادوات المصنوعة كاملة تغير الاستايل تبعا لبرنامجي واضافة لوازم اخري وانا تبعت موضوع الرسم البياني بالادوات
عدلت الكود وظبط معايا الخاص بالرسم
والكود دة يوضع فين في زر الرسم ولا فين
PictureBox1.Invalidate()
الطباعة الصورة تظهر بيضاء مش عارف اية المشكلة معني باطبع بية عادي اي صورة
|