Я хотел спросить, возможно ли создать две простые полосы, используя MScharts, чтобы они выглядели так:
Снимок экрана http://img16.imageshack.us/img16/4413/desktoptf.png
Я хочу точную копию приведенного выше изображения, поэтомунет диаграммы или сетки, только две простые полосы, подобные этим.
Другое дело, что максимальные значения обозначены маленькими красными полосами на каждом конце полос и должны оставаться там до тех пор, пока не будет превышено максимальное значение.
Идея в том, что я читаю живые данные (4 значения), которые должны динамически применяться к барам.
Так кто-нибудь знает, как это сделать?В настоящее время я использую плагин MScharts (или может быть лучше использовать функцию рисования C # вместо MScharts?).
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Хорошо, вот что я придумала:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool k = false;
Random random = new Random();
int max = 0;
protected override void OnPaint(PaintEventArgs paintEvnt)
{
int i = 30;
Graphics gfx = paintEvnt.Graphics;
Pen myPen = new Pen(Color.Black);
for (i = 40; i < 640; i = i + 100)
{
gfx.DrawLine(myPen, i, 25, i, 35);
}
for (i = 40; i < 640; i = i + 100)
{
gfx.DrawLine(myPen, i, 55, i, 65);
}
Color brushColor = Color.FromArgb(0, 0, 255);
SolidBrush myBrush = new SolidBrush(brushColor);
int randomnumber = random.Next(0, 601);
gfx.FillRectangle(myBrush, 33, 33, randomnumber, 25);
if (randomnumber + 33 > max)
{
max = randomnumber + 33;
gfx.DrawLine(new Pen(Color.Red, 3), max, 30, max, 60);
}
else
{
gfx.DrawLine(new Pen(Color.Red, 3), max, 30, max, 60);
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Invalidate();
}
}
}
И вот как это выглядит: http://img411.imageshack.us/img411/5646/graphmj.jpg Каждый раз, когда я нажимаю кнопку, генерируются новые случайные данные, которые переопределяют старый график.,Тем не менее, есть еще проблема.Красный индикатор должен увеличиваться только тогда, когда было превышено максимальное значение, и это то, что я пытался реализовать с помощью if-запроса в методе OnPaint, однако он все равно будет иногда составлять случайные значения и полностью отключаться, превышая старое значение.даже если новое случайное значение еще ниже ... это не имеет смысла.
Вот проект, если кто-то захочет попробовать и помочь мне: http://up.k10x.net/ambglolrngulg/LevelMeter.zip
Я действительно не знаю, потому чтоКод выглядит правильно для меня.