私は窓を入れてグラフをプロットし、ズームを追加し、StripLines.outを使用してグラフ領域をリセットし、選択は、以下のようC#を使用してWindowsFormアプリケーションの[リセット]ボタンをクリックした後にStripLinesが機能しないのはなぜですか?
ですだから私は、地域を選択して、X-ズームとY-ズーム用の目盛りを追加することができ、その後リセット]をクリックもう一度領域を選択すると、その機能はうまくいきます。しかし、私はズームから目盛りを外して再び領域を選択します。領域を選択できませんでした。 それはなぜですか?私はこの言語の初心者です。どんな助けもありがとうございます。
これはこれはこれは、リセットボタンのコードでチャート上の選択領域
private void chart1_SelectionRangeChanged(object sender, CursorEventArgs e)
{
ranges.Add(curRange);
selectedIndices.Union(collectDataPoints(chart1.Series[0], curRange.Width, curRange.Height)).Distinct();
StripLine sl = new StripLine();
sl.BackColor = Color.FromArgb(255, Color.Coral);
sl.IntervalOffset = Math.Min(curRange.Width, curRange.Height);
sl.StripWidth = Math.Abs(curRange.Height - curRange.Width);
chart1.ChartAreas[0].AxisX.StripLines.Add(sl);
}
List<int> collectDataPoints(Series s, double min, double max)
{
for (int i = 0; i < s.Points.Count; i++)
if (s.Points[i].XValue >= min && s.Points[i].XValue <= max) hits.Add(i);
return hits;
}
private void chart1_SelectionRangeChanging(object sender, CursorEventArgs e)
{
curRange = new SizeF((float)e.NewSelectionStart, (float)e.NewSelectionEnd);
}
ためのコードである私のコードズーム
private void checkBoxXZoom_CheckedChanged(object sender, EventArgs e)
{
ChartArea CA1 = chart1.ChartAreas[0];
if (this.checkBoxXZoom.Checked == true)
{
CA1.AxisX.ScaleView.Zoomable = true;
CA1.CursorX.AutoScroll = true;
CA1.CursorX.IsUserSelectionEnabled = true;
}
else
{
CA1.AxisX.ScaleView.Zoomable = false;
CA1.CursorX.AutoScroll = false;
CA1.CursorX.IsUserSelectionEnabled = false;
}
}
private void checkBoxYZoom_CheckedChanged(object sender, EventArgs e)
{
ChartArea CA1 = chart1.ChartAreas[0];
if (this.checkBoxYZoom.Checked == true)
{
CA1.AxisY.ScaleView.Zoomable = true;
CA1.CursorY.AutoScroll = true;
CA1.CursorY.IsUserSelectionEnabled = true;
}
else
{
CA1.AxisY.ScaleView.Zoomable = false;
CA1.CursorY.AutoScroll = false;
CA1.CursorY.IsUserSelectionEnabled = false;
}
}
です。
private void btnReset1_Click(object sender, EventArgs e)
{
this.chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset(0);
this.chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset(0);
this.chart1.ChartAreas[0].AxisX.StripLines.Clear();
}
問題の解決方法を教えてください。
非常にmuch.Iあなたの助けのための初心者をありがとうあなたがこれをさらに明確にすることができるならば、この言語のために。 – SNP
さん、私の問題は、最初にxまたはyのチェックボックスだけがtrueになっているエリアを選択できることです。リセットボタンをクリックしてチェックボックスをfalseにした後、エリアを選択できません。なぜthat.pleaseは私に解決策を与えますか? 。 – SNP
コンストラクタのカーソル設定を設定します。チェックボックスのイベントハンドラでズーム可能なプロパティのみを切り替えます。 – zeFrenchy