在线程中打开类似msn的消息提示窗口
最近开发碰到个严重的问题,请各位大人帮个忙
不知道各位知道taskbarNotifier这个类吗?网上有下,这是个类似msn的消息提示窗口,刚开始一切都是那么完美,我做了设置,然后点击,右下角弹出了个很漂亮的窗体,很好
但是当我使用线程时就不一样了,没反应,就是没反应,什么反应都没有,跟踪了一下,也没找到原因何在?
本来我以为这和在线程中打开新窗体的问题是相同的,但是之后发现不是那么回事,
我把打开窗体的函数贴出来
private void showwiindow()
{
if (textBoxTitle.Text.Length==0 || textBoxContent.Text.Length==0)
{
MessageBox.Show( "Enter a title and a content Text ");
return;
}
if (!IsNumeric(textBoxDelayShowing.Text) || !IsNumeric(textBoxDelayStaying.Text) || !IsNumeric(textBoxDelayHiding.Text))
{
MessageBox.Show( "Enter valid Delays (integers) ");
return;
}
taskbarNotifier2.CloseClickable=checkBoxCloseClickable.Checked;
taskbarNotifier2.TitleClickable=checkBoxTitleClickable.Checked;
taskbarNotifier2.ContentClickable=checkBoxContentClickable.Checked;
taskbarNotifier2.EnableSelectionRectangle=checkBoxSelectionRectangle.Checked;
taskbarNotifier2.KeepVisibleOnMousOver=checkBoxKeepVisibleOnMouseOver.Checked; // Added Rev 002
taskbarNotifier2.ReShowOnMouseOver=checkBoxReShowOnMouseOver.Checked; // Added Rev 002
taskbarNotifier3.Show(textBoxTitle.Text,textBoxContent.Text,Int32.Parse(textBoxDelayShowing.Text),Int32.Parse(textBoxDelayStaying.Text),Int32.Parse(textBoxDelayHiding.Text));
}
接下来是线程
private void button2_Click(object sender, System.EventArgs e)
{
Thread receivex = new Thread(new ThreadStart(this.showwiindow));
receivex.Start();
Thread.Sleep(6000);
}
问题是出在哪儿呢?
各位大人能否想想办法?在线期待中...
------解决方案--------------------用下平民百姓的代码,嘿嘿
delegate void showwiindowHandler();
private void showwiindow()
{
if (this.InvokeRequired)
{
showwiindowHandler si = new showwiindowHandler(this.showwiindow);
this.BeginInvoke(si, new object[0]);
return; //这里要返回,把函数调用权交给this的创建线程
}
//这里是你的其它的代码
}
------解决方案--------------------呵呵,对,是要用Return返回一下,
今天老是出错,真是羞愧难当啊,汗一下...