gpt4 book ai didi

c# - 使用 C# 查找 live 的区域部分

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:50 25 4
gpt4 key购买 nike

我这样做是为了使用 mschart 控件为图表的一部分创建点击事件处理程序,图表是这样的 enter image description here

和这样的代码

private void targetChartmouse_Click(object sender, MouseEventArgs e)
{
try
{
var pos = e.Location;
var results = kpiChartControl.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.DataPoint)
{
//do something....
}
}
}
}

当我们点击图表(在图表的每个部分)时它工作正常,但我只想在我们点击实时(绿色)而不是每个部分时做一些事情。是否可以找到 live(green) 的区域

可以用c#吗?

我在做winforms应用

修改后的代码

     public void targetChartmouse_Click(object sender, MouseEventArgs e)
{
Series statusseries = new Series();
Series liveseries = null;
Title title;
string area;

//Series totalserries;
try
{
var pos = e.Location;
var results = kpiChartControl.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.DataPoint)
{

DataTable accepts = null;
accepts = KPIData.livemembersmembershiptype(mf);

DataTable membershiptypes = null;
membershiptypes = KPIData.MembershipTotals(dtStartDate.Value, dtEndDate.Value, mf);

area = "subchart";
kpiChartControl.ChartAreas.Add(area);
statusseries = kpiChartControl.Series.Add(area);
statusseries.ChartArea = area;

title = kpiChartControl.Titles.Add("Live Status members By MemberShip Type");
title.DockedToChartArea = area;
title.Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold);
title.Alignment = ContentAlignment.TopLeft;
kpiChartControl.Titles.Add("").DockedToChartArea = area;
kpiChartControl.Titles.Add("Live status membership types").DockedToChartArea = area;


area = "";
kpiChartControl.Titles.Add("").DockedToChartArea = area;




foreach (Title titles in kpiChartControl.Titles)
{
titles.IsDockedInsideChartArea = false;
}


foreach (ChartArea chartArea in kpiChartControl.ChartAreas)
{
chartArea.Area3DStyle.Enable3D = true;
chartArea.AxisX.LabelStyle.IsEndLabelVisible = true;
//chartArea.AxisX.LabelStyle.IsEndLabelVisible = !overview;
}

if (area == "subchart")
{
foreach (Series chartSeries in kpiChartControl.Series)
{
chartSeries.ChartType = SeriesChartType.StackedColumn;
chartSeries["ColumnDrawingStyle"] = "SoftEdge";
chartSeries["LabelStyle"] = "Top";
chartSeries.IsValueShownAsLabel = true;
chartSeries.BackGradientStyle = GradientStyle.DiagonalLeft;
}
}
else if (area == "subchart")
{
foreach (Series chartSeries in kpiChartControl.Series)
{
chartSeries.ChartType = SeriesChartType.Pie;

//chartSeries["PieLabelStyle"] = "Outside";
chartSeries["PieLabelStyle"] = "Inside";
chartSeries["DoughnutRadius"] = "30";
chartSeries["PieDrawingStyle"] = "SoftEdge";

chartSeries.BackGradientStyle = GradientStyle.DiagonalLeft;

}

}

foreach (Legend legend in kpiChartControl.Legends)
{
legend.Enabled = false;
}

if (membershiptypes == null)
{
statusseries.Points.Clear();
statusseries.Points.AddXY("no status", 0);

}
if (accepts == null)
{
liveseries.Points.Clear();
liveseries.Points.AddXY("no live", 0);

}
kpiChartControl.Series["subchart"].Points.DataBindXY(accepts.Rows, "mshipname", accepts.Rows, "count");
kpiChartControl.Series[0].Points.DataBindXY(membershiptypes.Rows, "Status", membershiptypes.Rows, "Value");

}

foreach (Series chartSeries in kpiChartControl.Series)
{
foreach (DataPoint point in chartSeries.Points)
{

switch (point.AxisLabel)
{
case "Silver membership": point.Color = Color.Green; break;
case "Gold Membership": point.Color = Color.Blue; break;
//case "Refused": point.Color = Color.Red; break;
case "Weekend Peak": point.Color = Color.Cyan; break;
case "prspect": point.Color = Color.Indigo; break;

}
point.Label = string.Format("{0:0}", point.YValues[0]);
}

}

foreach (Series chartSeries in kpiChartControl.Series)
{
foreach (DataPoint point in chartSeries.Points)
{
switch (point.AxisLabel)
{
case "New": point.Color = Color.Cyan; break;
case "Live": point.Color = Color.Green; break;
case "Defaulter": point.Color = Color.Red; break;
case "Cancelled": point.Color = Color.Orange; break;
case "Completed": point.Color = Color.Blue; break;
case "Frozen": point.Color = Color.Violet; break;
}

point.Label = string.Format("{0:0} - {1}", point.YValues[0], point.AxisLabel);
}
}

}
}
catch
{
}

}

最佳答案

这可能有效:

try
{
var pos = e.Location;
var results = kpiChartControl.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.DataPoint)
{
if (result.Series.Points[result.PointIndex].AxisLabel == "Live")
{
Console.WriteLine("success?");
}
}
}
}

关于c# - 使用 C# 查找 live 的区域部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com