兔八哥极品软件园    运行: 4470天 | 文章:640 篇 | 评论:505 条 | 碎语:1条

c#多线,程子线程委托主线程MessageBox.Show()方法

作者:admin 发布于:2012-3-29 14:38 Thursday 分类:.NET

一、MessageBox.Show(this,e.ErrorMsg, "错误提示", MessageBoxButtons.OK,MessageBoxIcon.Error);

这种情况是在这个方法是以事件形式来给另一线程操作的吧!


二、MessageBox过程放到 form里面,用一个函数封装起来

在线程里面 BeginInvoke它

还有,MessageBox.Show有个参数,是IWin32Window owner
MSDN里面这么说:

可 以使用 owner 参数指定一个特定对象,该对象实现 IWin32Window接口,而该接口充当对话框的顶级窗口和所有者。消息框是一种模式对话框,这表示除了该模式窗体上的对象之外,不能对其他对象进行 任何输入(通过键盘或鼠标单击)。该程序必须隐藏或关闭有模式窗体(通常是响应某个用户操作),然后才能对另一窗体进行输入。

在消息框中最多...

阅读全文>>

标签: MessageBox

评论(0) 引用(51) 浏览(33245)

子线程使用委托与UI线程的通信

作者:admin 发布于:2012-3-29 14:23 Thursday 分类:.NET

由于项目中存在这样的载入的画面:在界面上有显示载入信息的Label控件和进度条,如果采用单线程则在载入数据的时候UI界面会被锁死,造成假死的感觉。为了给一个更友好的界面,因此有必要引入多线程技术,使得软件更加“人性化”。

但随后在子线程中访问界面上的控件的时候会出现异常,不能操作主线程所控制的UI界面。看来这得用到委托技术了!

首先我们定义委托:

public delegate void loadin(string data, int progress);

定义委托用delegate关键字,随后跟着一个返回值(这里void就是没有返回值了)loadin是委托名,后面带着两个参数,分别代表显示载入的数据和载入进度条的数值!

在窗体的Load事件里面我们定义一个子线程,用于在后台载入数据并显示载入情况。

定义线程:

ThreadStart ts = newThreadStart(Downin);...

阅读全文>>

标签: 委托

评论(0) 引用(112) 浏览(21034)

(模态)子线程中的MessageBox在主线程之上显示

作者:admin 发布于:2012-3-29 14:07 Thursday 分类:.NET

1.创建类,继承接口IWin32Window

public class WindowWrapper : System.Windows.Forms.IWin32Window
{
        private System.IntPtr _hwnd;
        public WindowWrapper(System.IntPtr handle)
        {
            _hwnd = handle;
        }
        public System.IntPtr Handle
        {
            get { return _hwnd; }
        }
} 

2.然后封装系统获取主窗体API

[System. Runtime. InteropServices. DllImport ( "user32")]
public st...

阅读全文>>

标签: MessageBox

评论(0) 引用(115) 浏览(49000)

从客户端中检测到有潜在危险的 Request.Form 值

作者:admin 发布于:2012-3-28 20:39 Wednesday 分类:.NET

sp.net开发中,经常遇到“从客户端检测到有潜在危险的Request.Form 值”错误提示,很多人给出的解决方案是:

1、web.config文档<system.web>后面加入这一句: <pages validaterequest="false"/>
示例:
<?xml version="1.0" encoding="gb2312" ?>
<configuration>
<system.web>
<pages validaterequest="false"/>
</system.web>
</configuration>

2、在*.aspx文档头的page中加入validaterequest="false",示例如下:
<%@ page...

阅读全文>>

评论(0) 引用(137) 浏览(34371)

asp.net ckFinder 未知错误 解决方法

作者:admin 发布于:2012-3-26 21:09 Monday 分类:.NET

打开config.ascx

找到这一行,BaseUrl = "/ckfinder/userfiles/";

加个波浪号:即变成 BaseUrl = "~/ckfinder/userfiles/";

阅读全文>>

标签: CKFinder

评论(0) 引用(24) 浏览(26565)


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap