//加载 private void RunStrategy_Load(object sender, EventArgs e) { output = new OutPut(); output.Show(manSHJH.GetMainFrame().dockPanel1, DockState.DockBottomAutoHide); output.Text = "策略管理"; //加载程序集 ScanAssembly(); //加载工程和用户信息 ReadUserInfo(); //设置默认选择项 cboxSelectAccount.SelectedIndex = 0; cboxSelectStrategy.SelectedIndex = 0; }
/**************************菜单事件***********************/ //【启动】 private void Start_MenuItem_Click(object sender, EventArgs e) { if (listStrategy.SelectedItems.Count <= 0) { return; } ListViewItem lvi = listStrategy.SelectedItems[0]; string filePath = null; string ClassName = null; ProjectStrategy projectStrag = null; foreach (ProjectStrategy ps in listProjects) { if (lvi.Text == ps.username) { filePath = ps.fileName; ClassName = ps.strategyName; projectStrag = ps; } } if (filePath == null || ClassName == null) { MessageBox.Show("此条记录已经失效!", "提示"); return; } if (projectStrag == null) { return; } //运行中无法连续启动 if (projectStrag.runFlag == EnumRunState.运行中 || projectStrag.runFlag == EnumRunState.异常 || projectStrag.runFlag == EnumRunState.超时) { return; } //判断是否存在此文件 if (!System.IO.File.Exists(filePath)) { MessageBox.Show("策略文件不存在或者被删除", "提示"); return; } //启动 Type typeStag = null; foreach (Type ty in listTypes) { if (ty.FullName == ClassName) { typeStag = ty; break; } } Strategy stt = null; try { stt = (Strategy)typeStag.Assembly.CreateInstance(typeStag.FullName); }catch (Exception es) { MessageBox.Show(es.Message, "提示"); return; } OutPut op = new OutPut(); op.Text = lvi.SubItems[1].Text; op.Show(manSHJH.GetMainFrame().dockPanel1, DockState.DockBottomAutoHide); if (!projectStrag.BeforeInit(stt, this, op)) { MessageBox.Show("初始化交易模型失败!", "提示"); return; } projectStrag.Init(); projectStrag.runFlag = EnumRunState.运行中; lvi.SubItems[2].Text = EnumRunState.运行中.ToString(); }