我现在用C#做程序,遇到一个问题,请教一下:使用NetworkChange.NetworkAvailabilityChanged事件侦测网络变化,把代码放在静态方法中能成功。但放在主界面中却不能成功。
以下代码成功:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(AddressChangedCallback);
Application.Run(new Form1());
}
static void AddressChangedCallback(object sender, EventArgs e)
{
MessageBox.Show("recieved");
}
以下代码运行不成:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label1.Text = "network is in service.";
NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(networkchanged);
}
public void networkchanged(object sender, NetworkAvailabilityEventArgs e)
{
//if (e.IsAvailable) label1.Text = "network is in service.";
//else label1.Text = "network is out service.";
label1.Text = "network is out service.";
}
不知怎么解决。
以下代码成功:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(AddressChangedCallback);
Application.Run(new Form1());
}
static void AddressChangedCallback(object sender, EventArgs e)
{
MessageBox.Show("recieved");
}
以下代码运行不成:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label1.Text = "network is in service.";
NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(networkchanged);
}
public void networkchanged(object sender, NetworkAvailabilityEventArgs e)
{
//if (e.IsAvailable) label1.Text = "network is in service.";
//else label1.Text = "network is out service.";
label1.Text = "network is out service.";
}
不知怎么解决。
解决方案 »
- 菜鸟级:三层体系结构是什么意思呢?
- virtual相关问题
- 为什么2005下,timerStates_Tick触发不了那?因为线程问题?怎么解决那?
- 跪求答案:C#能调用微软流媒体DRM加密SDK吗?
- 执行一个带布尔型参数的存储过程
- 如何在WinForm中添加HTML编辑器?
- c#数据包载收问题
- 一直安装不上去!!安装程序已检测到计算机上安装的某些系统组件与Visual Studio.net要求的版本不匹配,您必须安装这些组件的另一版本
- 哪位会C#的好心人能帮我解决下问题么不胜感激,我很着急
- 下载《C# Primer》中文版?
- C#应用程序设置成开机自动启动的问题。
- 我发现C#的HttpWebRequest有严重问题。
public void networkchanged(object sender, NetworkAvailabilityEventArgs e)
{
string message = "Your message here";
ShowMessage(message);
}
private void ShowMessage(string message)
{
if (label1.InvokeRequired)
{
label1.Invoke(new Action<string>(ShowMessage), message);
}
else
{
label1.Text = message;
}
}