SearchForm.cs
上传用户:yiyuerguo
上传日期:2014-09-27
资源大小:3781k
文件大小:4k
源码类别:

C#编程

开发平台:

Others

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. namespace EditerApp
  7. {
  8. /// <summary>
  9. /// SearchForm 的摘要说明。
  10. /// </summary>
  11. public class SearchForm : System.Windows.Forms.Form
  12. {
  13. private System.Windows.Forms.Label label1;
  14. private System.Windows.Forms.Button btnFindNext;
  15. private System.Windows.Forms.TextBox txtToSearch;
  16. private System.Windows.Forms.Button btnCancel;
  17. /// <summary>
  18. /// 必需的设计器变量。
  19. /// </summary>
  20. private System.ComponentModel.Container components = null;
  21. public SearchForm()
  22. {
  23. //
  24. // Windows 窗体设计器支持所必需的
  25. //
  26. InitializeComponent();
  27. //
  28. // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  29. //
  30. }
  31. /// <summary>
  32. /// 清理所有正在使用的资源。
  33. /// </summary>
  34. protected override void Dispose( bool disposing )
  35. {
  36. if( disposing )
  37. {
  38. if(components != null)
  39. {
  40. components.Dispose();
  41. }
  42. }
  43. base.Dispose( disposing );
  44. }
  45. #region Windows 窗体设计器生成的代码
  46. /// <summary>
  47. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  48. /// 此方法的内容。
  49. /// </summary>
  50. private void InitializeComponent()
  51. {
  52. this.label1 = new System.Windows.Forms.Label();
  53. this.btnFindNext = new System.Windows.Forms.Button();
  54. this.txtToSearch = new System.Windows.Forms.TextBox();
  55. this.btnCancel = new System.Windows.Forms.Button();
  56. this.SuspendLayout();
  57. // 
  58. // label1
  59. // 
  60. this.label1.Location = new System.Drawing.Point(24, 24);
  61. this.label1.Name = "label1";
  62. this.label1.Size = new System.Drawing.Size(96, 16);
  63. this.label1.TabIndex = 1;
  64. this.label1.Text = "查找内容:";
  65. // 
  66. // btnFindNext
  67. // 
  68. this.btnFindNext.DialogResult = System.Windows.Forms.DialogResult.Cancel;
  69. this.btnFindNext.Location = new System.Drawing.Point(16, 56);
  70. this.btnFindNext.Name = "btnFindNext";
  71. this.btnFindNext.Size = new System.Drawing.Size(120, 25);
  72. this.btnFindNext.TabIndex = 4;
  73. this.btnFindNext.Text = "查找下一处(&F)";
  74. this.btnFindNext.Click += new System.EventHandler(this.btnFindNext_Click);
  75. // 
  76. // txtToSearch
  77. // 
  78. this.txtToSearch.Location = new System.Drawing.Point(136, 16);
  79. this.txtToSearch.Name = "txtToSearch";
  80. this.txtToSearch.Size = new System.Drawing.Size(288, 21);
  81. this.txtToSearch.TabIndex = 3;
  82. this.txtToSearch.Text = "";
  83. // 
  84. // btnCancel
  85. // 
  86. this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
  87. this.btnCancel.Location = new System.Drawing.Point(312, 56);
  88. this.btnCancel.Name = "btnCancel";
  89. this.btnCancel.Size = new System.Drawing.Size(112, 25);
  90. this.btnCancel.TabIndex = 5;
  91. this.btnCancel.Text = "取消";
  92. this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
  93. // 
  94. // SearchForm
  95. // 
  96. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  97. this.ClientSize = new System.Drawing.Size(432, 165);
  98. this.Controls.Add(this.btnCancel);
  99. this.Controls.Add(this.btnFindNext);
  100. this.Controls.Add(this.txtToSearch);
  101. this.Controls.Add(this.label1);
  102. this.Name = "SearchForm";
  103. this.Text = "SearchForm";
  104. this.ResumeLayout(false);
  105. }
  106. #endregion
  107. //文本查找位置,缺省为文本起点
  108. private int FindPlace = 0;
  109. private void btnFindNext_Click(object sender, System.EventArgs e)
  110. {
  111. //当查找内容不为空时,进行查找
  112. if (txtToSearch.Text != "")
  113. {
  114. //获得Form1窗体的引用
  115. Form1 mainForm = (Form1)this.Owner ;
  116. //如果主窗体文本内容不为空,进行查找
  117. if (mainForm.MyRTBox .Text .Length >0)
  118. {
  119. if ((FindPlace = mainForm.MyRTBox .Text.IndexOf (txtToSearch.Text ,FindPlace))==-1)
  120. {
  121. MessageBox.Show ("没有搜索到!");
  122. //没有找到,重置查找位置为文本起点
  123. FindPlace = 0;
  124. }
  125. else
  126. { //选中找到的文本,使其明显
  127. mainForm.MyRTBox.Select (FindPlace,txtToSearch.Text .Length );
  128. //找到了,置查找位置为下一个位置
  129. FindPlace = FindPlace + txtToSearch.Text .Length ;
  130. mainForm.Activate ();
  131. }
  132. }
  133. }
  134. }
  135. private void btnCancel_Click(object sender, System.EventArgs e)
  136. {
  137.      this.Hide ();
  138. }
  139. }
  140. }