Click here to Skip to main content
16,016,568 members

Comments by ElexUK (Top 3 by date)

ElexUK 21-Nov-15 8:15am View    
Thank you very much it has solved the problem.

Added the following to MainForm.Designer.cs :
private void InitializeComponent()
{
\\ fileWatcher
this.fileWatcher = new System.IO.FileSystemWatcher();
.
.
this.fileWatcher.SynchronizingObject = this;
}


private System.IO.FileSystemWatcher fileWatcher;
ElexUK 21-Nov-15 6:35am View    
Hi, here is the code:

There are two forms in the Windows.Forms.Application
Main Form:
<pre lang="C#">
using System;
using System.IO;
using System.Windows.Forms;

namespace FileSystemWatcherApp
{
public partial class MainForm : Form
{
NotificationForm nf = new NotificationForm();
FileSystemWatcher fileWatcher = new FileSystemWatcher();

public MainForm()
{
InitializeComponent();

fileWatcher.Path = "C:\\Test";
fileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
fileWatcher.Filter = "*.*";

// Add event handlers.
fileWatcher.Changed += new FileSystemEventHandler(OnChanged);
fileWatcher.Created += new FileSystemEventHandler(OnChanged);

fileWatcher.EnableRaisingEvents = true;
}

private void OnChanged(object sender, FileSystemEventArgs e)
{
nf.Show();
}

private void button1_Click(object sender, EventArgs e)
{
nf.Show();
}

}
}

</pre>

NotificationForm:

using System;
using System.Windows.Forms;

namespace FileSystemWatcherApp
{
public partial class NotificationForm : Form
{
public NotificationForm()
{
InitializeComponent();
}

private void timer1_Tick(object sender, EventArgs e)
{
this.Close();
}

private void NotificationForm_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
}
}
}

Now, the problem is that when the NotificationForm is Showed by OnClick method then the timer on this form closes the form nicely, where if the NotificationForm is Showed from OnChanged method then it does not close after the time is up.
ElexUK 21-Nov-15 6:23am View    
Hi Richard, thanks for prompt reply.

There are two forms in the Windows.Forms.Application
Main Form:

Hide Expand Copy Code
using System;
using System.IO;
using System.Windows.Forms;

namespace FileSystemWatcherApp
{
public partial class MainForm : Form
{
NotificationForm nf = new NotificationForm();
FileSystemWatcher fileWatcher = new FileSystemWatcher();

public MainForm()
{
InitializeComponent();

fileWatcher.Path = "C:\\Test";
fileWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
fileWatcher.Filter = "*.*";

// Add event handlers.
fileWatcher.Changed += new FileSystemEventHandler(OnChanged);
fileWatcher.Created += new FileSystemEventHandler(OnChanged);

fileWatcher.EnableRaisingEvents = true;
}

private void OnChanged(object sender, FileSystemEventArgs e)
{
nf.Show();
}

private void button1_Click(object sender, EventArgs e)
{
nf.Show();
}

}
}

NotificationForm:

Hide Copy Code
using System;
using System.Windows.Forms;

namespace FileSystemWatcherApp
{
public partial class NotificationForm : Form
{
public NotificationForm()
{
InitializeComponent();
}

private void timer1_Tick(object sender, EventArgs e)
{
this.Close();
}

private void NotificationForm_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
}
}
}

Now, the problem is that when the NotificationForm is Showed by OnClick method then the timer on this form closes the form nicely, where if the NotificationForm is Showed from OnChanged method then it does not close after the time is up.