Я поместил некоторых Console.WriteLine
призывает для тестирования, но они не появляются в окне для вывода?
public static ArrayList myDeliveries = new ArrayList();
public mainForm(){
InitializeComponent();
}
private void mainForm_Load(object sender, EventArgs e){
if (!File.Exists("../../MealDeliveries.txt")){
MessageBox.Show("File not found!");
return;
}
using (StreamReader sr = new StreamReader("../../MealDeliveries.txt")){
//first line is delivery name
string strDeliveryName = sr.ReadLine();
Console.WriteLine("Test content");
while (strDeliveryName != null){
//other lines
Delivery d = new Delivery(
strDeliveryName,
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine(),
sr.ReadLine()
);
mainForm.myDeliveries.Add(d);
//check for further values
strDeliveryName = sr.ReadLine();
}
}
displayDeliveries();
}
private void displayDeliveries(){
lstDeliveryDetails.Items.Clear();
Console.WriteLine("Test content");
Console.WriteLine(mainForm.myDeliveries.Count);
foreach (Delivery d in mainForm.myDeliveries){
lstDeliveryDetails.Items.Add(d.DeliveryName);
}
}
Кто-либо может помочь??
Если вы собираетесь использовать этот вывод в производственной среде, используйте члены класса Trace . Это делает код переносимым, вы можете подключать различные типы слушателей и выводить их в окно консоли, окно отладки, файл журнала или что угодно еще.
Если это всего лишь временный код отладки, который вы используете для проверки того, что определенный код выполняется или имеет правильные значения, тогда используйте класс Debug , как предлагает Зак .
Если вам абсолютно необходимо использовать консоль, вы можете подключить консоль в методе программы Main
.
Консоль
выводит в окно консоли, а приложения Winforms не отображают окно консоли. У вас должна быть возможность использовать System.Diagnostics.Debug.WriteLine
для отправки вывода в окно вывода в вашей среде IDE.
Изменить: Что касается проблемы, вы подтвердили, что ваш mainForm_Load
действительно вызывается? Вы можете поместить точку останова в начало mainForm_Load
, чтобы увидеть. Если он не вызывается, я подозреваю, что mainForm_Load
не подключен к событию Load
.
Кроме того, более эффективно и, как правило, лучше переопределить On {EventName}
вместо подписки на {EventName}
из производных классов (в вашем случае переопределение OnLoad
вместо Load
).