Form1 デザイナーにユーザー コントロール チャートがあり、サイズを変更するコードは次のとおりです。
private void graphChart1_MouseEnter(object sender, EventArgs e)
{
graphChart1.Size = new Size(600, 600);
}
マウスをコントロール領域に移動すると、サイズが変更されて大きくなるのではなく、他のコントロールが削除されます。
これは、マウスをコントロールの上に移動する前の画像です。
これは、コントロールの上にマウスを移動したときの画像です。
これは、チャートがあるユーザー コントロールのコードです。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using System.Windows.Forms.DataVisualization.Charting;
namespace GatherLinks
{
public partial class GraphChart : UserControl
{
public GraphChart()
{
InitializeComponent();
}
private double f(int i)
{
var f1 = 59894 - (8128 * i) + (262 * i * i) - (1.6 * i * i * i);
return f1;
}
private void GraphChart_Load(object sender, EventArgs e)
{
chart1.Series.Clear();
var series1 = new System.Windows.Forms.DataVisualization.Charting.Series
{
Name = "Series1",
Color = System.Drawing.Color.Green,
IsVisibleInLegend = false,
IsXValueIndexed = true,
ChartType = SeriesChartType.Line
};
this.chart1.Series.Add(series1);
for (int i = 0; i < 100; i++)
{
series1.Points.AddXY(i, f(i));
}
chart1.Invalidate();
}
}
}
編集:
ユーザーコントロールクラスコードでこれを行いました:
public void ChangeChartSize(int width, int height)
{
chart1.Size = new Size(width, height);
chart1.Invalidate();
}
有効にするために追加chart1.Invalidate();
する必要がありましたが、ユーザーコントロール内でチャートのサイズを変更しました。ユーザー コントロールは変更されませんでした。
したがって、Form1 マウスに入力して、graphChart1 のコントロール サイズも変更します。
private void graphChart1_MouseEnter(object sender, EventArgs e)
{
graphChart1.ChangeChartSize(600, 600);
graphChart1.Size = new Size(600, 600);
}
問題は、マウスをコントロールの上に移動したときに有効になるまでに、約20秒ほど時間がかかることです。2 行目を削除すると、次のようになります。
graphChart1.Size = new Size(600, 600);
高速に動作しますが、コントロール内でのみチャートを変更しますが、コントロールのサイズは変更しません。
無効化でも試しました:
private void graphChart1_MouseEnter(object sender, EventArgs e)
{
graphChart1.ChangeChartSize(600, 600);
graphChart1.Size = new Size(600, 600);
graphChart1.Invalidate();
}
しかし、それでも非常に遅いです。Form1 ではなく、ユーザー コントロール クラス コードでもコントロールのサイズを変更する必要があるのではないでしょうか。