在C#MessageBox中,有MessageBox.Show 方法 (IWin32Window, String, String)的一个方法,但确不能使用这个方法,我的做法如下:
我先把窗口的句柄存入在变量里,如private IntPtr hWnd;,然后开一个线程运行另外一个方法,假如这个线程有问题要提示给用户,怎么样才能把MessageBox的消息放在窗口中呢?哪位高手有做过这个呢?
我先把窗口的句柄存入在变量里,如private IntPtr hWnd;,然后开一个线程运行另外一个方法,假如这个线程有问题要提示给用户,怎么样才能把MessageBox的消息放在窗口中呢?哪位高手有做过这个呢?
private void ThreadFun()
{
for( int i = 0; i < 10; i++ )
{
Debug.WriteLine( "In Tread:" + i.ToString() );
MessageBox.Show( i.ToString() );
System.Threading.Thread.Sleep( 10 );
}
}// Calling
Thread myThread = new Thread( new ThreadStart( ThreadFun ) ) ;
myThread.Start();
如果是简单线程,可以如下:
private void ThreadFun()
{
for( int i = 0; i < 10; i++ )
{
Debug.WriteLine( "In Tread:" + i.ToString() );
MessageBox.Show( this, i.ToString() );
System.Threading.Thread.Sleep( 10 );
}
}// Calling
Thread myThread = new Thread( new ThreadStart( ThreadFun ) ) ;
myThread.Start();
public class ThreadClass
{
private yourForm pParent;
public ThreadClass( yourForm ParentForm )
{
pParent = ParentForm;// init class member;
}public void ThreadFun()
{
for( int i = 0; i < 10; i++ )
{
Debug.WriteLine( "In Tread:" + i.ToString() );
MessageBox.Show( pParent, i.ToString() );//use class member to show message box
System.Threading.Thread.Sleep( 10 );
}
}
}//Calling
ThreadClass myThreadClass = new ThreadClass( this );
//Create thread