/*快捷菜单*/
ContextMenuStrip 测试快捷 = new ContextMenuStrip();
/*主菜单=名称|图标索引*/
/*子菜单子参数:乾坤大挪移=上级菜单索引|移动菜单索引:移一个菜单主菜单下位索引-1*/
/*事件*/
/*加载赋值*/
/*九九乘法表-紫菜汤-顺序排列*/
string[] 九九乘法表 = new string[81]; int 索引 = 0;
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
九九乘法表[索引] = i.ToString() + "×" + j.ToString() + "=" + (i * j).ToString() + "|";
索引++;
}
}//,九九乘法表乾坤大挪移参数 = new string[81]为了体现就不自动生成了。
string[] 九九乘法表乾坤大挪移参数 = new string[] {
"0|1", "0|0|1", "0|0|0|1", "0|0|0|0|1", "0|0|0|0|0|1", "0|0|0|0|0|0|1", "0|0|0|0|0|0|0|1", "0|0|0|0|0|0|0|0|1",
"1|2", "1|0|2", "1|0|0|2", "1|0|0|0|2", "1|0|0|0|0|2", "1|0|0|0|0|0|2", "1|0|0|0|0|0|0|2", "1|0|0|0|0|0|0|0|2",
"2|3", "2|0|3", "2|0|0|3", "2|0|0|0|3", "2|0|0|0|0|3", "2|0|0|0|0|0|3", "2|0|0|0|0|0|0|3", "2|0|0|0|0|0|0|0|3",
"3|4", "3|0|4", "3|0|0|4", "3|0|0|0|4", "3|0|0|0|0|4", "3|0|0|0|0|0|4", "3|0|0|0|0|0|0|4", "3|0|0|0|0|0|0|0|4",
"4|5", "4|0|5", "4|0|0|5", "4|0|0|0|5", "4|0|0|0|0|5", "4|0|0|0|0|0|5", "4|0|0|0|0|0|0|5", "4|0|0|0|0|0|0|0|5",
"5|6", "5|0|6", "5|0|0|6", "5|0|0|0|6", "5|0|0|0|0|6", "5|0|0|0|0|0|6", "5|0|0|0|0|0|0|6", "5|0|0|0|0|0|0|0|6",
"6|7", "6|0|7", "6|0|0|7", "6|0|0|0|7", "6|0|0|0|0|7", "6|0|0|0|0|0|7", "6|0|0|0|0|0|0|7", "6|0|0|0|0|0|0|0|7",
"7|8", "7|0|8", "7|0|0|8", "7|0|0|0|8", "7|0|0|0|0|8", "7|0|0|0|0|0|8", "7|0|0|0|0|0|0|8", "7|0|0|0|0|0|0|0|8",
"8|9", "8|0|9", "8|0|0|9", "8|0|0|0|9", "8|0|0|0|0|9", "8|0|0|0|0|0|9", "8|0|0|0|0|0|0|9", "8|0|0|0|0|0|0|0|9"
};
//快捷菜单(测试快捷, 九九乘法表, null);
//乾坤大挪移(测试快捷, 九九乘法表乾坤大挪移参数);
this.BeginInvoke(new 快捷(快捷菜单), 测试快捷, 九九乘法表, null);
this.BeginInvoke(new 乾坤挪移(乾坤大挪移), 测试快捷, 九九乘法表乾坤大挪移参数);
this.ContextMenuStrip = 测试快捷;
private void 快捷菜单(ContextMenuStrip 菜单名, string[] 参数, EventHandler[] 事件)
{
int 计数 = 0;
foreach (string 元素 in 参数)
{
string[] 列表 = 元素.Split('|');
if (列表[0].Length > 0) 菜单名.Items.Add(列表[0]);
if (列表[1].Length > 0) 菜单名.Items[计数].Image = 图标集.Images[int.Parse(列表[1])];
if (事件 != null) if (事件[计数] != null) 菜单名.Items[计数].Click += new EventHandler(事件[计数]);
计数++;
}
菜单名.Items[0].BackColor = System.Drawing.Color.Aqua;
//return 菜单名;//ContextMenuStrip
}
private void 乾坤大挪移(ContextMenuStrip 菜单名, string[] 子参数)
{
foreach (string 元素 in 子参数)
{
string[] 列表 = 元素.Split('|');
ToolStripDropDownItem 菜单位置 = (ToolStripDropDownItem)菜单名.Items[int.Parse(列表[0])];
if (列表.Length > 2)//无极紫菜汤
for (int 无极 = 1; 无极 < 列表.Length - 1; 无极++)
{ 菜单位置 = 无极之菜单(菜单位置, int.Parse(列表[无极])); }
ToolStripItem 子菜单名 = 菜单名.Items[int.Parse(列表[列表.Length - 1])];
菜单位置.DropDownItems.Add(子菜单名);
}
}
private ToolStripDropDownItem 无极之菜单(ToolStripDropDownItem 级, int 位置)
{
ToolStripDropDownItem 无极 = (ToolStripDropDownItem)级.DropDownItems[位置];
return 无极;
}
EventHandler[] 主体快捷事件 = new EventHandler[] { null, null, 曲线QToolStripMenuItem_Click, 选项OToolStripMenuItem_Click, 农历NToolStripMenuItem_Click, null, null, 农历ToolStripMenuItem3_Click, (sender1, e1) => { 选项卡.SelectedIndex = 选项卡.TabPages.IndexOfKey("附件"); }, 退出XToolStripMenuItem_Click };
需要说明的是菜单事件必须与菜单名称对应,数量相等,没事件的可以写null;
光菜汤写一大堆代码确实头大,这几天不知怎么啦,跟这些菜汤干上了,功夫不负有心人,下午终于归纳导出:乾坤大挪移无极紫菜汤;这些天经过一番推理,证明这种写法是合理而且容易理解思路清晰。
知道写得不好,欢迎提提建议,我只想用我的方法来写,证明写程序是很灵活的,也是头脑所想的,只要有办法,可以心想事成。
/*九九乘法表-紫菜汤-梯形排列*/
string[] 九九乘法表 = new string[45]; int 索引 = 0;
for (int i = 1; i <= 9; i++)
{
for (int j = i; j <= 9; j++)
{
九九乘法表[索引] = i.ToString() + "×" + j.ToString() + "=" + (i * j).ToString() + "|";
索引++;
}
}
string[] 九九乘法表乾坤大挪移参数 = new string[] {
"1|9", "2|9", "3|9", "4|9", "5|9", "6|9", "7|9", "8|9",
"2|0|9", "3|0|9", "4|0|9", "5|0|9", "6|0|9", "7|0|9", "8|0|9",
"3|0|0|9", "4|0|0|9", "5|0|0|9", "6|0|0|9", "7|0|0|9", "8|0|0|9",
"4|0|0|0|9", "5|0|0|0|9", "6|0|0|0|9", "7|0|0|0|9", "8|0|0|0|9",
"5|0|0|0|0|9", "6|0|0|0|0|9", "7|0|0|0|0|9", "8|0|0|0|0|9",
"6|0|0|0|0|0|9", "7|0|0|0|0|0|9", "8|0|0|0|0|0|9",
"7|0|0|0|0|0|0|9", "8|0|0|0|0|0|0|9",
"8|0|0|0|0|0|0|0|9"
};
/*下列的就不做出排列了,留给有兴趣的人去玩。*/
for (int i = 1, j = 1; j <= 9; i++)
{
九九乘法表[索引] = i.ToString() + "×" + j.ToString() + "=" + (i * j).ToString() + "|";
if (j == i) { i = 0; j++; }
索引++;
}
/*下列递归算法:递归就是不断压入栈的过程,从9一直压入栈中到1;条件满足后,执行是从最后压入栈取出开始。九九乘法表递归(9);*/
ArrayList 九九乘法表 = new ArrayList();
public void 九九乘法表递归(int 数值)
{
if (数值 <= 0) return;
九九乘法表递归(数值 - 1);
for (int 递归 = 1; 递归 <= 数值; 递归++)
{ 九九乘法表.Add(数值 + "×" + 递归 + "=" + (递归 * 数值).ToString() + "|"); }
}