Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2013
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.28 KB | None | 0 0
  1. using System.Windows.Forms;
  2. using System.Threading;
  3. // ...
  4. [DllImport( "user32.dll" )]
  5. public static extern IntPtr GetForegroundWindow();     
  6.  
  7. class Win32Window:IWin32Window
  8. {   public IntPtr Handle
  9.     {   get
  10.         {   return handle;  }
  11.     }
  12.     private IntPtr handle;
  13.    
  14.     public Win32Window(IntPtr wndHandle)
  15.     {   handle = wndHandle;  }
  16. }
  17.  
  18. private string fullFileName = "";
  19.  
  20. private void showDialog()
  21. {   IntPtr b1WindowHandle = GetForegroundWindow();
  22.     Win32Window b1Window       = new Win32Window(b1WindowHandle);
  23.     OpenFileDialog ofd = new OpenFileDialog();
  24.     ofd.Title = "Test";
  25.     ofd.InitialDirectory = "";
  26.     ofd.Filter = "Any file|*.*";
  27.     if ( ofd.ShowDialog( b1Window ) == DialogResult.OK ) // Returns immediately
  28.     //if ( ofd.ShowDialog()         == DialogResult.OK )  // Works
  29.     {   fullFileName = ofd.FileName;  }
  30. }
  31.  
  32. private bool OnMenu(MenuEvent me) // Call this in a menu event handler
  33. {   string msg;
  34.     Thread dlgThread = new Thread(showDialog);
  35.     dlgThread.SetApartmentState(ApartmentState.STA);
  36.     dlgThread.Start();
  37.     dlgThread.Join();
  38.     // Ui.App below is a SAPbouiCOM.Application:
  39.     if (fullFileName == "")
  40.     {   msg = "No file has been selected.";  }
  41.     else
  42.     {   msg = "Selected file is: " + fullFileName;  }
  43.     Ui.App.MessageBox(msg, 1, "", "", "");
  44.     return false; // this is for BubbleEvent;          
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement