Спасибо, что нашли время поделиться своей проблемой.
Кажется, вы неправильно поняли, что такое классы, переменные, методы и события и как их использовать.
Это может помочь вам: Как мне улучшить свои знания в C # .
Тем не менее, и если я понял, что вы хотите сделать, это может решить вашу проблему.
TextChanged, для метки, возникает при изменении свойства Text с помощью кода.
Это не потому, что вы изменяете значения своих счетчиков, что какое-то событие будет вызываться для меток.
Счетчики и метки - это две разные вещи, совершенно разные и не связанные, без ссылок, но вы можете связать их следующим образом:
private static void CDdirWatcher_Created(object sender, FileSystemEventArgs e)
{
CDCreated += 1;
cdCounterLbl_TextChanged(this, null);
}
private static void LPdirWatcher_Created(object sender, FileSystemEventArgs e)
{
LPCreated += 1;
lpCounterLbl_TextChanged(this, null);
}
private void cdCounterLbl_TextChanged(object sender, EventArgs e)
{
cdCounterLBL.Text = CDCreated.ToString();
}
private void lpCounterLbl_TextChanged(object sender, EventArgs e)
{
lpCounterLBL.Text = LPCreated.ToString();
}
Так что это не работает из-за статических методов, и мы имеемплохой дизайн из-за вызова TextChanged для изменения текста.
Вот как это сделать.
Добавить статическое событие:
private static Action CountersUpdated;
Добавить в событие формы Load:
CountersUpdated += DoUpdateCounters;
И в форме FormClosed событие:
CountersUpdated -= DoUpdateCounters;
С:
private void DoUpdateCounters()
{
cdCounterLBL.Text = CDCreated.ToString();
lpCounterLBL.Text = LPCreated.ToString();
}
Теперь вы можете написать:
private static void CDdirWatcher_Created(object sender, FileSystemEventArgs e)
{
CDCreated++;
CallCountersUpdated();
}
private static void LPdirWatcher_Created(object sender, FileSystemEventArgs e)
{
LPCreated++;
CallCountersUpdated();
}
private static void CallCountersUpdated()
{
if ( CountersUpdated != null ) CountersUpdated();
}
Вы также можете сделать два события для CDCounterUpdated и LPCounterUpdated вместо одного CountersUpdated.
Иметь хорошую работу и вести хорошую жизнь в C # и OOP.