如何将C#中datagridview中数据用柱状图形式表现?

baidu_34817953 2016-05-09 09:48:27
 public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<Work> list = new List<Work>();

private void Form1_Load(object sender, EventArgs e)
{
list.AddRange(new Work[] {
new Work() { WorkStation = 1, WorkTime = 12 },
new Work() { WorkStation = 2, WorkTime = 15 },
new Work() { WorkStation = 3, WorkTime = 20 }
});

this.dataGridView1.DataSource = list;
}

private void button2_Click(object sender, EventArgs e)
{
var maxTime = list.Select(w => w.WorkTime).Max();

list.ForEach(w =>
{
w.Efficiency = (w.WorkTime / maxTime).ToString("0.00%");
});

this.dataGridView1.DataSource = new List<Work>();
this.dataGridView1.DataSource = list;
}

}
public class Work
{
public int WorkStation { get; set; }
public double WorkTime { get; set; }
public string Efficiency { get; set; }
}

如何把 Efficiency通过点击按钮,用chart中的柱状图显示?
...全文
477 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_34817953 2016-05-09
  • 打赏
  • 举报
回复
引用 楼主 baidu_34817953 的回复:
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        List<Work> list = new List<Work>();

        private void Form1_Load(object sender, EventArgs e)
        {
            list.AddRange(new Work[] { 
                new Work() { WorkStation = 1, WorkTime = 12 },
                new Work() { WorkStation = 2, WorkTime = 15 },
                new Work() { WorkStation = 3, WorkTime = 20 }
            });

            this.dataGridView1.DataSource = list;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            var maxTime = list.Select(w => w.WorkTime).Max();

            list.ForEach(w =>
            {
                w.Efficiency = (w.WorkTime / maxTime).ToString("0.00%");
            });

            this.dataGridView1.DataSource = new List<Work>();
            this.dataGridView1.DataSource = list;
        }
  
    }
    public class Work
    {
        public int WorkStation { get; set; }
        public double WorkTime { get; set; }
        public string Efficiency { get; set; }
    }
如何把 Efficiency通过点击按钮,用chart中的柱状图显示?
如果想通完成在运行后手动输入数据的话,是不是要添加textbox?
xuzuning 2016-05-09
  • 打赏
  • 举报
回复
    public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

List<Work> list = new List<Work>();

private void Form1_Load(object sender, EventArgs e)
{
list.AddRange(new Work[] {
new Work() { WorkStation = 1, WorkTime = 12 },
new Work() { WorkStation = 2, WorkTime = 15 },
new Work() { WorkStation = 3, WorkTime = 20 }
});

this.dataGridView1.DataSource = list;
}

private void button1_Click(object sender, EventArgs e)
{
var maxTime = list.Select(w => w.WorkTime).Max();

list.ForEach(w =>
{
w.Efficiency = (decimal)(w.WorkTime / maxTime);//.ToString("0.00%");
});

this.dataGridView1.DataSource = new List<Work>();
this.dataGridView1.DataSource = list;
}

private void button2_Click(object sender, EventArgs e)
{
chart1.Series.Clear();
Series series = new Series("Efficiency");
series.ChartType = SeriesChartType.Column;
series.BorderWidth = 3; series.ShadowOffset = 2;
foreach (var x in list)
{
series.Points.AddY(x.Efficiency);
}
chart1.Series.Add(series);
}

}
public class Work
{
public int WorkStation { get; set; }
public double WorkTime { get; set; }
public decimal Efficiency { get; set; }
}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧