关于C#菜单程序的问题

这里是一个带历史信息的菜单的程序,程序里面获取索引值为什么要 -2 ?
另外,能简约的介绍下DropDownItems的作用么?
小弟不才,望大神指导

private void Form1_Load(object sender, EventArgs e)
        {
            if (File.Exists("Menu.ini"))//判断文件是否存在
            {
                StreamReader sr = new StreamReader("Menu.ini");//创建文件流
                int i = this.文件ToolStripMenuItem.DropDownItems.Count - 2;//获取索引项
                while (sr.Peek() >= 0)//读取文件流
                {
                    //将读取的信息创建菜单项
                    ToolStripMenuItem menuitem = new ToolStripMenuItem(sr.ReadLine());
                    //将菜单项添加到指定位置
                    this.文件ToolStripMenuItem.DropDownItems.Insert(i, menuitem);
                    i++;

                }
                sr.Close();//关闭流
            }
        }

        private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            this.openFileDialog1.ShowDialog();//打开对话框
            StreamWriter s = new StreamWriter("Menu.ini", true);//创建流
            s.WriteLine(openFileDialog1.FileName);//流写入文件
            s.Flush();
            s.Close();

}

索引是从0开始的,count计算数字是从1开始的。估计Item中最后还有一个估计是根Item或者“请选择”之类的