sfSystemDialogs.cs
上传用户:lctyggxszx
上传日期:2022-06-30
资源大小:280k
文件大小:2k
源码类别:

FlashMX/Flex源码

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Windows.Forms;
  5. using AxShockwaveFlashObjects;
  6. using Mueller.Wddx;
  7. namespace SharpFlash
  8. {
  9. /// <summary>
  10. /// Summary description for sfSystemDialogs
  11. /// </summary>
  12. public class sfSystemDialogs
  13. {
  14. private static WddxSerializer wddxSerializer = new WddxSerializer();
  15. private static WddxDeserializer wddDeserializer = new WddxDeserializer();
  16. public sfSystemDialogs() {
  17. }
  18. public static void Command(Form form, AxShockwaveFlash flashApp, string list, String method) {
  19. switch(method) {
  20. case "BrowseForFile_Open":
  21. sfSystemDialogs.BrowseForFile_Open(form, flashApp, list);
  22. break;
  23. }
  24. }
  25. public static void BrowseForFile_Open(Form form, AxShockwaveFlash flashApp, string list) {
  26. System.Collections.Hashtable args = (System.Collections.Hashtable)wddDeserializer.Deserialize(list);
  27. OpenFileDialog fdlg = new OpenFileDialog(); 
  28. fdlg.FileName = args["fileName"].ToString();
  29. fdlg.Title = args["caption"].ToString();
  30. fdlg.InitialDirectory = args["initialPath"].ToString();  
  31. fdlg.Filter = args["typeFilter"].ToString(); // "All files (*.*)|*.*"
  32. fdlg.CheckFileExists = false;
  33. fdlg.FilterIndex = 1; 
  34. fdlg.RestoreDirectory = true; 
  35. bool ok = false;
  36. if(fdlg.ShowDialog() == DialogResult.OK) 
  37. ok = true;
  38. flashApp.SetVariable("$SFData", "<sf><callback><id>" + args["callback_id"] + "</id>"
  39. + "<args>"
  40. + "<arg>" + wddxSerializer.Serialize(ok).ToString() + "</arg>"
  41. + "<arg>" + wddxSerializer.Serialize(fdlg.FileName).ToString() + "</arg>"
  42. + "</args></callback></sf>");
  43. }
  44. }
  45. }