转到第几行,请高人给指点一下private void btnOk_Click(object sender, System.EventArgs e)
{
Form1 mainform=(Form1)this.Owner;
int line=mainform.rtxtDoc.Lines.Length;
if (line==0)
{
line+=1;
}
if(int.Parse(this.txtLine.Text)<=line && int.Parse(this.txtLine.Text)>0)
{
Form1.gto(int.Parse(this.txtLine.Text)-1);
this.Close();
}
else
{
MessageBox.Show("行数超过范围");
this.txtLine.Text=line.ToString();

}
} private void btnCancel_Click(object sender, System.EventArgs e)
{
this.Close();
}
Form1的gto函数
public static void gto(int i)
{
int ln=0; for (int count = 0; count < i; count++)
{
foreach (char ch in notepad.rtxtDoc.Lines[count].ToCharArray())
{
ch.ToString();
ln++;
}
ln += 1;  
}
notepad.rtxtDoc.SelectionStart=ln;
notepad.rtxtDoc.ScrollToCaret(); }

解决方案 »

  1.   

    自己又改进了一小下,不过还是不能解决数组的元素个数的动态问题
    private void btnOk_Click(object sender, System.EventArgs e)
    {
    Form1 mainform=(Form1)this.Owner;
    int line=mainform.rtxtDoc.Lines.Length;
    if (line==0)
    {
    line+=1;
    }
    if(int.Parse(this.txtLine.Text)<=line && int.Parse(this.txtLine.Text)>0)
    {
    // Form1.gto(int.Parse(this.txtLine.Text)-1);
    int n=mainform.rtxtDoc.Lines.Length;
    int i=(int.Parse(this.txtLine.Text)-1);
    string[] arr=new string[n]{mainform.rtxtDoc.Lines[n]};
    mainform.rtxtDoc.SelectionStart=mainform.rtxtDoc.Text.IndexOf(arr[i-1]);
    mainform.rtxtDoc.ScrollToCaret(); this.Close();
    }
    else
    {
    MessageBox.Show("行数超过范围");
    this.txtLine.Text=line.ToString();

    }
    }