Trong .Net, tôi khai báo 1 hàm như sau:

Visual C# Code:
  1.         private void timtruoc()
  2.         {
  3.             xac_dinh = vi_tri;
  4.             RtxVanban.SelectAll();
  5.             RtxVanban.SelectionBackColor = Color.White;
  6.             mytext = RtxVanban.Text.Substring(vi_tri);
  7.             string can_tim = Find_Text.Text.Trim().ToString();
  8.             int i = mytext.IndexOf(can_tim);
  9.             if (i == -1) MessageBox.Show("Không tìm thấy từ cần tìm !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
  10.             else
  11.             {
  12.                 vi_tri = i;
  13.                 RtxVanban.Select(vi_tri + xac_dinh, can_tim.Length);
  14.                 RtxVanban.SelectionBackColor = Color.Yellow;
  15.             }
  16.         }

Trong đó :
- RtxVanban là Ricktext trong Form
- Find_text là đoạn text cần dùng làm biến để tìm kiếm.
- vi_tri là 1 biến kiểu Int, được khai báo ở đầu chương trình ( public static int vi_tri = 0). Được dùng để cố định vị trí cho lần tìm kiếm sau.
- xac_dinh là biến kiểu int giống y chang vi_tri. Dùng để cố định chỗ tìm kiếm đầu tiên, sao cho lần tìm kiếm sau nó có thể dựa vào mà tìm kiếm tiếp được. (Bởi vì thiếu biến này thì nó chỉ tìm ra vị trí đầu tiên, vị trí tiếp theo sẽ là vị trí mà nó chưa trừ đi độ dài của vị trí tìm kiếm trước nó. Có nghĩa là, ví dụ:
1 xâu "bbbbaaaaccccc", ta muốn tìm kiếm chuỗi "aa"
Sau khi tìm kiếm nó sẽ cho kết quả "bbbaaaaccccc" với aa đầu tiên (vị trí 4,5) được bôi thành màu vàng, nhưng lần tiếp nó sẽ bôi vàng chữ bb. Vì nó tìm được vị trí tiếp theo cũng là aa, nhưng vị trí tìm của nó là 0,1 , mà bôi vàng chuỗi được chọn thì lại bắt đầu từ 0,1. Thế mới chết.

Làm sao để có thể tìm được chuỗi tiếp theo được? Ai giúp thì củng cố cho tui cái nha!