babak1
پنج شنبه 21 بهمن 1389, 21:00 عصر
سلام :
من این برنامه رو تست کردم .تحت شرایطی "rtb.undo()" (خط ستاره دار) هم اجرا میشه ولی 2 سوال داشتم :
1- چرا undo اصلا عمل نمی کنه!!
2- اصلا چرا نوشته شده ؟
int start = 0;
int indexOfSearchText = 0;
private void button1_Click(object sender, EventArgs e)
{
int startindex = 0;
if (txtSearch.Text.Length > 0)
startindex = FindMyText(txtSearch.Text.Trim(), start, rtb.Text.Length);
if (startindex >= 0)
{
rtb.SelectionColor = Color.Red;
int endindex = txtSearch.Text.Length;
rtb.Select(startindex, endindex);
start = startindex + endindex;
}
}
private int FindMyText(string txtToSearch, int searchStart, int searchEnd)
{
if (searchStart > 0 && searchEnd > 0 && indexOfSearchText >= 0)
{
rtb.Undo(); *****
}
int retVal = -1;
if (searchStart >= 0 && indexOfSearchText >= 0)
{
if (searchEnd > searchStart || searchEnd == -1)
{
indexOfSearchText = rtb.Find(txtToSearch, searchStart, searchEnd, RichTextBoxFinds.None);
if (indexOfSearchText != -1)
{
retVal = indexOfSearchText;
}
}
}
return retVal;
}
با تشکر.
من این برنامه رو تست کردم .تحت شرایطی "rtb.undo()" (خط ستاره دار) هم اجرا میشه ولی 2 سوال داشتم :
1- چرا undo اصلا عمل نمی کنه!!
2- اصلا چرا نوشته شده ؟
int start = 0;
int indexOfSearchText = 0;
private void button1_Click(object sender, EventArgs e)
{
int startindex = 0;
if (txtSearch.Text.Length > 0)
startindex = FindMyText(txtSearch.Text.Trim(), start, rtb.Text.Length);
if (startindex >= 0)
{
rtb.SelectionColor = Color.Red;
int endindex = txtSearch.Text.Length;
rtb.Select(startindex, endindex);
start = startindex + endindex;
}
}
private int FindMyText(string txtToSearch, int searchStart, int searchEnd)
{
if (searchStart > 0 && searchEnd > 0 && indexOfSearchText >= 0)
{
rtb.Undo(); *****
}
int retVal = -1;
if (searchStart >= 0 && indexOfSearchText >= 0)
{
if (searchEnd > searchStart || searchEnd == -1)
{
indexOfSearchText = rtb.Find(txtToSearch, searchStart, searchEnd, RichTextBoxFinds.None);
if (indexOfSearchText != -1)
{
retVal = indexOfSearchText;
}
}
}
return retVal;
}
با تشکر.