今天在为项目添加工具栏的时候遇到了点小问题,文档要求每个已有的窗体都能通过工具栏快捷访问
我是个比较懒的人能少一句代码就少写一句,肯定不会闲的没事干再去每个窗体new一下然后show一下
于是我就想把Form.Name存在ToolStripMenuItem.Tag当中,然后再让所有ToolStripMenuItem的click事件
调用一个方法,这个方法根据ToolStripMenuItem.Tag弹出不同窗体.
具体实现如下:
1 private void toolStripMenuItem_Click(object sender, EventArgs e)
2 {
3 ToolStripMenuItem item = sender as ToolStripMenuItem;
4 Type formType = Type.GetType("命名空间." + item.Tag.ToString());
5 if (formType == null)
6 return;
7 Form frm = (Form)Activator.CreateInstance(formType);
8 frm.Show();
9 }
代码第四行处需注意,传参必须是完整的“命名空间.窗体名”不能只传窗体名,如果未找到或传参不正确那么返回
值将是null所以在第五行必须对Type进行判断。
浙公网安备 33010602011771号