witam
robie proste wyszukiwanie tekstu
http://img32.yfrog.com/img32/9477/goale.jpg
do duzego okna laduje tresc (np. z pliku)
w malym wpisuje to co chce szukac
klikam "znajdz nastepny" i nic..
klikam ponownie i dziala (znaleziony tekst zostaje podswietlony w duzym okienku)
i tak za kazdym razem
duze okienko reaguje zawsze za drugim kliknieciem
ciekawe, ze jesli probuje wyszukac tekst, ktorego nie ma i klikne "znajdz nastepny" wyskakuje okienko "nie znaleziono", czyli wszystko tak jak powinno
ponizej zamieszczam oba pliki
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace _002_wyszukiwanie_tekstu
{
public partial class Form1 : Form
{
public Form2 szukaj;
public static bool closed = true;
public string szukany;
public Form1()
{
InitializeComponent();
}
//szukaj
private void button1_Click(object sender, EventArgs e)
{
if (closed)
{
closed = false;
szukaj = new Form2(this);
szukaj.Owner = this;
szukaj.Show();
}
else
szukaj.Activate();
}
public string getText()
{
return richTextBox1.Text;
}
public void koloruj(int start, int length)
{
//if (richTextBox1.SelectedText.Equals(""))
richTextBox1.SelectionBackColor = Color.Turquoise;
richTextBox1.Select(start, length);
//MessageBox.Show(richTextBox1.SelectedText, a.ToString());
}
//wczytaj tekst z pliku
private void richTextBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
openFileDialog1 = new OpenFileDialog();
openFileDialog1.DefaultExt = "txt";
openFileDialog1.Filter = "Pliki tekstowe (*.txt)|*.txt|Wszystkie pliki (*.*)|*.*";
openFileDialog1.ShowDialog();
string filename = openFileDialog1.FileName.ToString();
//otwieranie pliku
if (File.Exists(filename))
{
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(fs);
richTextBox1.Text = reader.ReadToEnd();
reader.Close();
}
}
//pomocniczy klawisz
private void button2_Click(object sender, EventArgs e)
{
richTextBox1.SelectionBackColor = Color.Aqua;
richTextBox1.Select(5, 10);
}
}
}
Form2.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _002_wyszukiwanie_tekstu
{
public partial class Form2 : Form
{
public Form1 glowne;
public Form2(Form1 gl)
{
InitializeComponent();
glowne = gl;
this.AcceptButton = button1;
}
//zamknij
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
//znajdź następny
private void button1_Click(object sender, EventArgs e)
{
string t = textBox1.Text;
int first;
//uwzglednianie wielkosci liter
if(checkBox1.Checked)
first = glowne.getText().IndexOf(t);
else
first = glowne.getText().ToLower().IndexOf(t);
//czy znaleziono wystąpienia
if (first > 0)
glowne.koloruj(first, t.Length);
else
MessageBox.Show("Nie znaleziono szukanego wyrazu", "Niestety");
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Form1.closed = true;
}
}
}