137 lines
3.7 KiB
C#
137 lines
3.7 KiB
C#
using JWH;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DDUtilityApp.LOGPARSER
|
|
{
|
|
|
|
public partial class FrmFindDialog : Form
|
|
{
|
|
|
|
public event EventHandler FInd;
|
|
|
|
public Control Control { get; set; } = null;
|
|
|
|
public string SelectedText
|
|
{
|
|
get { return this.cboxFind.Text; }
|
|
set { this.cboxFind.Text = value; }
|
|
}
|
|
|
|
public FrmFindDialog()
|
|
{
|
|
InitializeComponent();
|
|
this.SetLayout();
|
|
this.SetEventHandler();
|
|
}
|
|
|
|
public FrmFindDialog(TextBox textBox) : this()
|
|
{
|
|
this.Control = textBox;
|
|
}
|
|
|
|
private void SetLayout()
|
|
{
|
|
this.Text = "Find Dialog";
|
|
this.MaximizeBox = false;
|
|
this.MinimizeBox = false;
|
|
}
|
|
|
|
private void SetEventHandler()
|
|
{
|
|
this.btnNext.Click += BtnNext_Click;
|
|
this.btnPrevious.Click += BtnPrevious_Click;
|
|
this.btnClose.Click += BtnClose_Click;
|
|
}
|
|
|
|
private void BtnNext_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
TextBox control = this.Control as TextBox;
|
|
|
|
int start = control.SelectionStart + control.SelectionLength;
|
|
int index = control.Text.IndexOf(this.cboxFind.Text, start);
|
|
if (index < 0) return;
|
|
|
|
control.SelectionStart = index;
|
|
control.SelectionLength = this.cboxFind.Text.Length;
|
|
control.ScrollToCaret();
|
|
|
|
if (this.FInd != null) this.FInd(this, new EventArgs());
|
|
this.ComboBox_ItemAppend();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
XLogger.Instance.Fatal(ex);
|
|
}
|
|
}
|
|
|
|
private void BtnPrevious_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
TextBox control = this.Control as TextBox;
|
|
|
|
int end = control.SelectionStart;
|
|
int index = control.Text.LastIndexOf(this.cboxFind.Text, end);
|
|
if (index < 0) return;
|
|
|
|
control.SelectionStart = index;
|
|
control.SelectionLength = this.cboxFind.Text.Length;
|
|
control.ScrollToCaret();
|
|
|
|
if (this.FInd != null) this.FInd(this, new EventArgs());
|
|
this.ComboBox_ItemAppend();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
XLogger.Instance.Fatal(ex);
|
|
}
|
|
}
|
|
|
|
private void BtnClose_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void ComboBox_ItemAppend()
|
|
{
|
|
try
|
|
{
|
|
string value = this.cboxFind.Text;
|
|
if (string.IsNullOrWhiteSpace(value)) return;
|
|
|
|
this.cboxFind.Items.Remove(value);
|
|
this.cboxFind.Items.Insert(0, value);
|
|
this.cboxFind.Text = value;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
XLogger.Instance.Fatal(ex);
|
|
}
|
|
}
|
|
|
|
public void Next(string selectedText = "")
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(selectedText)) this.cboxFind.Text = selectedText;
|
|
this.BtnNext_Click(this.btnNext, new EventArgs());
|
|
}
|
|
|
|
public void Pervious(string selectedText = "")
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(selectedText)) this.cboxFind.Text = selectedText;
|
|
this.BtnPrevious_Click(this.btnNext, new EventArgs());
|
|
}
|
|
|
|
}
|
|
|
|
}
|