Пустое окно после сборки
После сборки моего кода появляется пустое окно, помогите.
Код Form1.cs.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace DataAnalyzer
{
public partial class Form1 : Form
{
private List<DataEntry> dataEntries;
public Form1()
{
InitializeComponent(); // Инициализация компонентов формы
InitializeCustomComponents(); // Инициализация дополнительных компонентов
}
private void InitializeCustomComponents()
{
dataEntries = new List<DataEntry>();
// Настройка Chart
chart1.ChartAreas.Add(new ChartArea("MainChartArea"));
// Настройка кнопок
btnLoadFile.Click += BtnLoadFile_Click;
btnSaveCharts.Click += BtnSaveCharts_Click;
// Инициализация OpenFileDialog
openFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
// Инициализация SaveFileDialog
saveFileDialog.Filter = "PNG Image|*.png|All files|*.*";
saveFileDialog.FileOk += new CancelEventHandler(saveFileDialog_FileOk); // Обработчик события FileOk
}
private void BtnLoadFile_Click(object sender, EventArgs e)
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
LoadData(openFileDialog.FileName);
BuildCharts();
}
}
private void BtnSaveCharts_Click(object sender, EventArgs e)
{
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
chart1.SaveImage(saveFileDialog.FileName, ChartImageFormat.Png);
}
}
private void LoadData(string filePath)
{
dataEntries.Clear();
var lines = File.ReadAllLines(filePath);
foreach (var line in lines)
{
var parts = line.Split(';');
if (parts.Length == 15)
{
var entry = new DataEntry
{
TeamID = parts[0],
Time = int.Parse(parts[1]),
Pressure = int.Parse(parts[2]),
Temperature = int.Parse(parts[3]),
Altitude = int.Parse(parts[4]),
Accel1 = int.Parse(parts[5]),
Accel2 = int.Parse(parts[6]),
Accel3 = int.Parse(parts[7]),
Gyro1 = int.Parse(parts[8]),
Gyro2 = int.Parse(parts[9]),
Gyro3 = int.Parse(parts[10]),
Flag1 = int.Parse(parts[11]),
Flag2 = int.Parse(parts[12]),
Flag3 = int.Parse(parts[13]),
Flag4 = int.Parse(parts[14])
};
dataEntries.Add(entry);
}
}
}
private void BuildCharts()
{
chart1.Series.Clear();
// Высота от времени
var altitudeSeries = new Series("Altitude vs Time")
{
ChartType = SeriesChartType.Line
};
altitudeSeries.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Altitude).ToList());
chart1.Series.Add(altitudeSeries);
// Давление от времени
var pressureSeries = new Series("Pressure vs Time")
{
ChartType = SeriesChartType.Line
};
pressureSeries.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Pressure).ToList());
chart1.Series.Add(pressureSeries);
// Высота от температуры
var altitudeTempSeries = new Series("Altitude vs Temperature")
{
ChartType = SeriesChartType.Line
};
altitudeTempSeries.Points.DataBindXY(dataEntries.Select(x => x.Temperature).ToList(), dataEntries.Select(x => x.Altitude).ToList());
chart1.Series.Add(altitudeTempSeries);
// Акселерометр по трем осям от времени
var accel1Series = new Series("Accel1 vs Time")
{
ChartType = SeriesChartType.Line
};
accel1Series.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Accel1).ToList());
chart1.Series.Add(accel1Series);
var accel2Series = new Series("Accel2 vs Time")
{
ChartType = SeriesChartType.Line
};
accel2Series.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Accel2).ToList());
chart1.Series.Add(accel2Series);
var accel3Series = new Series("Accel3 vs Time")
{
ChartType = SeriesChartType.Line
};
accel3Series.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Accel3).ToList());
chart1.Series.Add(accel3Series);
// Гироскоп по трем осям от времени
var gyro1Series = new Series("Gyro1 vs Time")
{
ChartType = SeriesChartType.Line
};
gyro1Series.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Gyro1).ToList());
chart1.Series.Add(gyro1Series);
var gyro2Series = new Series("Gyro2 vs Time")
{
ChartType = SeriesChartType.Line
};
gyro2Series.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Gyro2).ToList());
chart1.Series.Add(gyro2Series);
var gyro3Series = new Series("Gyro3 vs Time")
{
ChartType = SeriesChartType.Line
};
gyro3Series.Points.DataBindXY(dataEntries.Select(x => x.Time).ToList(), dataEntries.Select(x => x.Gyro3).ToList());
chart1.Series.Add(gyro3Series);
}
private void saveFileDialog_FileOk(object sender, CancelEventArgs e)
{
// Обработка события FileOk
// Здесь можно добавить дополнительную логику, если необходимо
}
}
public class DataEntry
{
public string TeamID { get; set; }
public int Time { get; set; }
public int Pressure { get; set; }
public int Temperature { get; set; }
public int Altitude { get; set; }
public int Accel1 { get; set; }
public int Accel2 { get; set; }
public int Accel3 { get; set; }
public int Gyro1 { get; set; }
public int Gyro2 { get; set; }
public int Gyro3 { get; set; }
public int Flag1 { get; set; }
public int Flag2 { get; set; }
public int Flag3 { get; set; }
public int Flag4 { get; set; }
}
}
Код Form.Designer.cs.
namespace DataAnalyzer
{
partial class Form1
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">true, если управляемый ресурс должен быть удален; в противном случае false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором форм Windows
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.btnLoadFile = new System.Windows.Forms.Button();
this.btnSaveCharts = new System.Windows.Forms.Button();
this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
this.SuspendLayout();
//
// btnLoadFile
//
this.btnLoadFile.Location = new System.Drawing.Point(12, 12);
this.btnLoadFile.Name = "btnLoadFile";
this.btnLoadFile.Size = new System.Drawing.Size(75, 23);
this.btnLoadFile.TabIndex = 0;
this.btnLoadFile.Text = "Load File";
this.btnLoadFile.UseVisualStyleBackColor = true;
//
// btnSaveCharts
//
this.btnSaveCharts.Location = new System.Drawing.Point(93, 12);
this.btnSaveCharts.Name = "btnSaveCharts";
this.btnSaveCharts.Size = new System.Drawing.Size(93, 23);
this.btnSaveCharts.TabIndex = 1;
this.btnSaveCharts.Text = "Save Charts";
this.btnSaveCharts.UseVisualStyleBackColor = true;
//
// chart1
//
this.chart1.Location = new System.Drawing.Point(12, 43);
this.chart1.Name = "chart1";
this.chart1.Size = new System.Drawing.Size(776, 395);
this.chart1.TabIndex = 2;
this.chart1.Text = "chart1";
//
// openFileDialog
//
this.openFileDialog.FileName = "openFileDialog";
//
// saveFileDialog
//
this.saveFileDialog.FileOk += new System.ComponentModel.CancelEventHandler(this.saveFileDialog_FileOk);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.chart1);
this.Controls.Add(this.btnSaveCharts);
this.Controls.Add(this.btnLoadFile);
this.Name = "Form1";
this.Text = "Data Analyzer";
((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnLoadFile;
private System.Windows.Forms.Button btnSaveCharts;
private System.Windows.Forms.DataVisualization.Charting.Chart chart1;
private System.Windows.Forms.OpenFileDialog openFileDialog;
private System.Windows.Forms.SaveFileDialog saveFileDialog;
}
}