フォームの初期化から ChartSettings オブジェクトに問題があります。
Form1
これは、コードの下に追加された私自身のクラスです。
public partial class Form1 : Form
{
public Form1(bool archivePlotPreview)
{
InitializeComponent();
ChartSettings chartOne = new ChartSettings(this.chart1, archivePlotPreview);
}
public ChartSettings chartOne;
//Form1 variables and functions
}
public class ChartSettings
{
public ChartSettings(Chart settingsRelatedChart, bool archivePlotPreview)
{
// przypisanie wykresu do ktorego odnosza sie ustawienia
ChartObject = settingsRelatedChart;
ChartObject.MouseMove += new System.Windows.Forms.MouseEventHandler(this.chart1_MouseMove);
barchivePlotPreview = archivePlotPreview;
}
// other variables and functions
}
このクラスを作成する理由は、CSV 保存オプション、最小/最大マーカー オプションなどの Chart オブジェクト (デザイナー ウィンドウに追加された chart1) に関連する追加の変数が必要であるためです。上で見ることができます。それに chart1 を割り当て、さらにコードで this.chart1 の代わりに chartOne.ChartObject を使用したいと思います。
新しい Form1 インスタンスを作成すると、ウィンドウが表示され、chart1 が表示されますが、chartOne.ChartObject参照を使用する「データの読み込み」ボタンを押すと、chartOne が null であるためクラッシュします:/ this.chart1 に対する直接操作はわかった。コードをデバッグすると、chartOne はコンストラクターで作成され、null ではありませんが、前述のボタンを押すと、とにかく上記のように動作します。chartOne が途中で消えるのはなぜですか? そして、それはどのように正しい方法で行われるべきですか?