From vbforums, there are two possible answers, from jmcilhinney. One says:
I'm not 100% sure but I think it likely that that NetworkAvailabilityChanged event is presumably a wrapper for the NetworkChange.NetworkAvailabilityChanged event. The documentation for that event says:
The NetworkChange class raises NetworkAvailabilityChanged events when the availability of the network changes. The network is available when at least one network interface is marked "up" and is not a tunnel or loopback interface.
Presumably you have at least one non-tunnel or loopback network interface marked as "up", even when you unplug your network cable.
and the other:
My guess would be that it uses a Windows-specific API under the hood that is not available on Linux and either has no analogue or at least it hasn't been implemented in Mono.
There is also this question in StackOverflow that has no answer still. I was reading the source code of mono, trying to figure out this issue. Although it has a
LinuxNetworkChange () function, I didn't saw what the problem is (and I'm not too familiarized with mono).
Either way, since you didn't say that the program was firing an error, it could be that it wasn't catch or mono doesn't listen at all for it. A more robust search lies ahead.