OpenForm.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Tofly.CoreUI.Plot;
  5. using Tofly.Core.Components;
  6. using Tofly.CoreUI.Control;
  7. namespace Tofly.CoreUI.Win.Design
  8. {
  9. [PluginComponentAttribute((long)Core.SysRegist.ModuleKey.Form, PluginGISType.ArcGISAndSuperMap, GroupName = "表单", Caption = "表单查询", Describe = "使用表单的方式查询")]
  10. [Tofly.Core.Stereotype.Component(IsSingleton = "false", Name = "Tofly.CoreUI.Win.Design.OpenForm")]
  11. public class OpenForm : PluginButtonBase
  12. {
  13. private IForm xmlForm;
  14. private object mainForm;
  15. private OpenFormParameter parameter;
  16. public override ComponentBaseParameter Parameter
  17. {
  18. set
  19. {
  20. parameter = value as OpenFormParameter;
  21. }
  22. get { return parameter; }
  23. }
  24. public override Type ParameterType
  25. {
  26. get
  27. {
  28. return typeof(OpenFormParameter);
  29. }
  30. }
  31. public override void Create(IPluginContent content)
  32. {
  33. base.Create(content);
  34. mainForm = content.PluginMainForm;
  35. }
  36. public override void Click()
  37. {
  38. //DateTime beginDT = DateTime.Now;
  39. if (parameter == null)
  40. return;
  41. if (Core.Util.StringUtils.IsNullOrSpace(parameter.XmlFileName))
  42. return;
  43. if (xmlForm == null)
  44. {
  45. OpenHelper openHelper = new OpenHelper();
  46. if (parameter.ShowDialog)
  47. {
  48. object refData = null;
  49. openHelper.ShowDialog(parameter.XmlFileName, ref refData, mainForm);
  50. }
  51. else
  52. {
  53. xmlForm = openHelper.Show(parameter.XmlFileName, null, mainForm) as IForm;
  54. if (xmlForm != null)
  55. xmlForm.FormClosedEvent += xmlForm_FormClosedEvent;
  56. }
  57. }
  58. else if (!xmlForm.Visible)
  59. {
  60. xmlForm.Show(mainForm);
  61. }
  62. //TimeSpan ts = DateTime.Now - beginDT;
  63. //string msg = "表单创建:" + ts.Seconds.ToString() + "秒" + ts.Milliseconds + "豪秒";
  64. //System.Windows.Forms.MessageBox.Show(msg);
  65. }
  66. void xmlForm_FormClosedEvent(object sender)
  67. {
  68. if (xmlForm != null)
  69. xmlForm = null;
  70. }
  71. }
  72. [ComponentParameterUI("Tofly.CoreUI.Win.Design.SelectFormUserControl")]
  73. public class OpenFormParameter : ComponentBaseParameter
  74. {
  75. [InputParameter("表单文件名称")]
  76. public string XmlFileName { get; set; }
  77. private bool showdialog = false;
  78. [InputParameter("是否使用模式窗口")]
  79. public bool ShowDialog
  80. {
  81. get { return showdialog; }
  82. set { showdialog = value; }
  83. }
  84. }
  85. }