/// <summary> /// 绑定具体信息 /// </summary> /// <param name="oobID"></param> private void BindDetail(int oobID) { if (oobID == 0) { return; } ClearBaseInformation(); ClearLeaderInformation(); OOBInfo oobModel = oobList.Find(o => o.id == oobID); if (oobModel.armyType == ArmyTypeEnum.Regiment || oobModel.armyType == ArmyTypeEnum.Ship || oobModel.armyType == ArmyTypeEnum.Wing) { int parentID = oobModel.parentID; oobModel = oobList.Find(o => o.id == parentID); oobID = oobModel.id; } #region 绑定基本信息 txt_BasicID.Text = oobID.ToString(); txt_BasicName.Text = oobModel.name; txt_BasicType.Text = GetOOBType(oobModel.armyType); string flagPath = RetuenPath(string.Concat(pathInfo.gfxPath, "flags\\", countryCode, ".tga")); Bitmap m_bmp = DevIL.DevIL.LoadBitmap(flagPath); pb_CountryFlag.Image = m_bmp; string provinceName = ""; if (!string.IsNullOrEmpty(oobModel.location)) { provinceName = string.Concat(localisationModel.ProvinceList.Find(p => p.id == oobModel.location).name, "(", oobModel.location, ")"); } else { OOBInfo parentOOBModel = oobList.Find(o => o.id == oobModel.parentID); provinceName = string.Concat(localisationModel.ProvinceList.Find(p => p.id == parentOOBModel.location).name, "(", parentOOBModel.location, ")"); } txt_BasicLocation.Text = provinceName; if (oobModel.is_reserve == null) { cb_Reserve.Enabled = false; } else { cb_Reserve.Enabled = true; cb_Reserve.Checked = oobModel.is_reserve.Value; } #endregion BindLeader(oobModel); this.panel1.Controls.Clear(); foreach (OOBInfo oobInfo in oobList.FindAll(o => o.parentID == oobID)) { if (oobInfo.armyType == ArmyTypeEnum.Regiment || oobInfo.armyType == ArmyTypeEnum.Ship || oobInfo.armyType == ArmyTypeEnum.Wing) { ShowUserControl(oobInfo); acNum++; } } }
private void GenerateAdvanced(OOBInfo oobInfo, int tabNum) { AddTab(tabNum); int childTabNum = tabNum + 1; sb.Append(oobInfo.armyType.ToString().ToLower() + " = {\r\n"); GeneralAdvancedBasicCode(oobInfo, childTabNum); var oobChildList = oobList.FindAll(c => c.parentID == oobInfo.id).OrderBy(co => co.id); foreach (OOBInfo oobChildInfo in oobChildList) { if (oobChildInfo.armyType == ArmyTypeEnum.Regiment || oobChildInfo.armyType == ArmyTypeEnum.Ship || oobChildInfo.armyType == ArmyTypeEnum.Wing) { GenerateRegimentOrShipOrWing(oobChildInfo, childTabNum); var oobChildList2 = oobList.FindAll(c => c.parentID == oobChildInfo.id); if (oobChildList2.Count > 0) { foreach (OOBInfo oobChildInfo2 in oobChildList2) { GenerateAdvanced(oobChildInfo2, childTabNum); } } continue; } GenerateAdvanced(oobChildInfo, childTabNum); } AddTab(tabNum); sb.Append("}\r\n"); }
private void btn_AddAttachment_Click(object sender, EventArgs e) { //OOBInfo OOBInfo oobInfo = new OOBInfo(); this.lastOobID++; oobInfo.id = lastOobID; if (acNum == 0) { oobInfo.name = this.txt_BasicName.Text.Trim(); } string basicTypeName = (string)cbb_BasicType.SelectedItem;//获取当前选中项 ArmyTypeEnum armyTypeEnum = ConvertArmyTypeStringToEnum(basicTypeName); if (armyTypeEnum.Equals(ArmyTypeEnum.Navy)) { oobInfo.type = "destroyer"; } else if (armyTypeEnum.Equals(ArmyTypeEnum.Air)) { oobInfo.type = "interceptor"; } else { oobInfo.type = "hq_brigade"; } ShowUserControl(oobInfo); acNum++; }
/// <summary> /// 绑定附属部队 /// </summary> /// <param name="oobInfo"></param> /// <param name="acNum"></param> private void ShowUserControl(OOBInfo oobInfo) { try { Add_AttachmentControl aac = new Add_AttachmentControl(oobInfo, localisationModel, pathInfo, countryCode, militaryTypeList); if (this.panel1.Controls.Count > 0) { Point point = this.panel1.Controls[this.panel1.Controls.Count - 1].Location; aac.Location = new Point(-5, point.Y + 105); } else { int pointy = acNum == 0 ? (acNum * 105) : (acNum * 105); aac.Location = new Point(-5, pointy); } aac.Parent = this.panel1; aac.Height = 100; this.panel1.Controls.Add(aac); } catch (Exception ex) { ShowErrorMessage("添加附属部队失败:" + ex.Message); } }
public Add_AttachmentControl(OOBInfo oobInfo, LocalisationInfo localisationModel, PathInfo pathInfo, string countryCode, List <MilitaryTypeInfo> militaryTypeList) { InitializeComponent(); this.oobInfo = oobInfo; this.localisationModel = localisationModel; this.pathInfo = pathInfo; this.countryCode = countryCode; this.militaryTypeList = militaryTypeList; Bind(); BindAttType(); }
/// <summary> /// 绑定将领信息 /// </summary> /// <param name="oobModel"></param> private void BindLeader(OOBInfo oobModel) { if (!string.IsNullOrEmpty(oobModel.leader)) { LeaderInfo leaderInfo = leaderList.Find(l => l.ID.ToString() == oobModel.leader); if (leaderInfo != null) { string leaderPath = RetuenPath(string.Concat(pathInfo.gfxPath, "pictures\\portraits\\", leaderInfo.picture, ".tga")); Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath); pb_Leader.Image = m_bmpLeader; txt_LeaderID.Text = leaderInfo.ID.ToString(); txt_LeaderName.Text = leaderInfo.name; txt_LeaderSkill.Text = leaderInfo.skill.ToString(); txt_LeaderMaxSkill.Text = leaderInfo.max_skill.ToString(); int num = leaderInfo.add_trait.Count; if (num > 0) { pictureBox_trait1.Image = showTraitImage(leaderInfo.add_trait[0]); traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[0]).traitName); } if (num > 1) { pictureBox_trait2.Image = showTraitImage(leaderInfo.add_trait[1]); traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[1]).traitName); } if (num > 2) { pictureBox_trait3.Image = showTraitImage(leaderInfo.add_trait[2]); traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[2]).traitName); } if (num > 3) { pictureBox_trait4.Image = showTraitImage(leaderInfo.add_trait[3]); traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[3]).traitName); } } else { string leaderPath = RetuenPath(string.Concat(pathInfo.gfxPath, "pictures\\portraits\\empty_position.tga")); Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath); pb_Leader.Image = m_bmpLeader; } } else { string leaderPath = RetuenPath(string.Concat(pathInfo.gfxPath, "pictures\\portraits\\empty_position.tga")); Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath); pb_Leader.Image = m_bmpLeader; } }
private void GenerateRegimentOrShipOrWing(OOBInfo oobInfo, int tabNum) { AddTab(tabNum); sb.Append(oobInfo.armyType.ToString().ToLower() + " = {"); sb.Append(" type = " + oobInfo.type); if (!string.IsNullOrEmpty(oobInfo.name)) { sb.Append(" name = \"" + oobInfo.name + "\""); } if (!string.IsNullOrEmpty(oobInfo.experience)) { sb.Append(" experience = " + oobInfo.experience); } sb.Append(" historical_model = " + oobInfo.historical_model + " }\r\n"); }
private void 添加新部队ToolStripMenuItem_Click(object sender, EventArgs e) { try { int oobID = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString()); int lastOOBID = oobList.FindAll(l => l.id > -1).Max(m => m.id); OOBInfo parentOOBInfo = oobList.Find(o => o.id == oobID); AddMilitaryForm addMilitaryForm = new AddMilitaryForm(localisationModel, pathInfo, countryCode, militaryTypeList, oobID, lastOOBID, parentOOBInfo.armyType); addMilitaryForm.add_military += new AddMilitaryForm.Add_military(alreadyAddMilitary); addMilitaryForm.Show(); } catch (Exception ex) { ShowErrorMessage("添加新部队失败:" + ex.Message); } }
/// <summary> /// 绑定附属部队 /// </summary> /// <param name="oobInfo"></param> /// <param name="acNum"></param> private void ShowUserControl(OOBInfo oobInfo) { try { AttachmentControl ac = new AttachmentControl(oobInfo, localisationModel, pathInfo, countryCode, militaryTypeList); ac.Parent = this.panel1; int pointy = acNum == 0 ? (acNum * 105) : (acNum * 105); ac.Location = new Point(5, pointy); ac.Height = 100; this.panel1.Controls.Add(ac); } catch (Exception ex) { ShowErrorMessage("附属部队绑定失败:" + ex.Message); } }
/// <summary> /// 添加附属部队 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_AddAttBriage_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.txt_BasicID.Text)) { ShowErrorMessage("请先选择部队"); return; } int parentID = Convert.ToInt32(this.txt_BasicID.Text.Trim()); int listLastOOBID = oobList.FindAll(l => l.id > -1).Max(m => m.id); if (lastOOBID < listLastOOBID) { lastOOBID = listLastOOBID; } OOBInfo oobInfo = new OOBInfo(); //if (lastOOBID == 0) //{ // lastOOBID = oobList.FindAll(l => l.id > -1).Max(m => m.id); //} lastOOBID++; oobInfo.id = lastOOBID; if (acNum == 0) { oobInfo.name = this.txt_BasicName.Text.Trim(); } OOBInfo parentOOBInfo = oobList.Find(p => p.id == parentID); if (parentOOBInfo.armyType == ArmyTypeEnum.Navy) { oobInfo.type = "destroyer"; } else if (parentOOBInfo.armyType == ArmyTypeEnum.Air) { oobInfo.type = "multi_role"; } else { oobInfo.type = "hq_brigade"; } AddShowUserControl(oobInfo); }
private void changeLeaderID(string leaderID) { try { int oobID = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString()); OOBInfo leaderOOBInfo = oobList.Find(o => o.leader == leaderID); if (leaderOOBInfo != null) { leaderOOBInfo.leader = ""; } OOBInfo oobInfo = oobList.Find(o => o.id == oobID); oobInfo.leader = leaderID; BindLeader(oobInfo); } catch (Exception ex) { ShowErrorMessage("添加将领失败:" + ex.Message); } }
private void 添加将领ToolStripMenuItem_Click(object sender, EventArgs e) { try { int oobID = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString()); OOBInfo oobInfo = oobList.Find(o => o.id == oobID); if (oobInfo.armyType != ArmyTypeEnum.Regiment && oobInfo.armyType != ArmyTypeEnum.Ship && oobInfo.armyType != ArmyTypeEnum.Wing) { SelectLeaderForm selectLeaderForm = new SelectLeaderForm(oobList, pathInfo, countryCode, 0, leaderTraitList, leaderList, oobInfo.armyType); selectLeaderForm.change_Leader += new SelectLeaderForm.Change_Leader(changeLeaderID); selectLeaderForm.Show(); } else { ShowErrorMessage("旅级部队不支持选择将领"); } } catch (Exception ex) { ShowErrorMessage("添加将领失败:" + ex.Message); } }
private void GeneralAdvancedBasicCode(OOBInfo oobInfo, int tabNum) { AddTab(tabNum); sb.Append("name = \"" + oobInfo.name + "\"\r\n"); AddTab(tabNum); sb.Append("location = " + oobInfo.location + "\r\n"); if (!string.IsNullOrEmpty(oobInfo.leader)) { AddTab(tabNum); sb.Append("leader = " + oobInfo.leader + "\r\n"); } if ((oobInfo.armyType == ArmyTypeEnum.Navy || oobInfo.armyType == ArmyTypeEnum.Air) && !string.IsNullOrEmpty(oobInfo.baseID)) { AddTab(tabNum); sb.Append("base = " + oobInfo.baseID + "\r\n"); } if (oobInfo.armyType == ArmyTypeEnum.Division && oobInfo.is_reserve.HasValue) { AddTab(tabNum); sb.Append("is_reserve = yes \r\n"); } }
private void 除当前将领ToolStripMenuItem_Click(object sender, EventArgs e) { int oobID = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString()); if (oobID == 0) { return; } OOBInfo oobModel = oobList.Find(o => o.id == oobID); if (oobModel.armyType == ArmyTypeEnum.Regiment || oobModel.armyType == ArmyTypeEnum.Ship || oobModel.armyType == ArmyTypeEnum.Wing) { int parentID = oobModel.parentID; oobModel = oobList.Find(o => o.id == parentID); oobID = oobModel.id; } oobModel.leader = ""; //if (ShowErrorMessageOK("删除当前将领成功") == DialogResult.OK) //{ BindDetail(oobID); //} }
private void 除当前部队ToolStripMenuItem_Click(object sender, EventArgs e) { try { int oobID = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString()); if (oobID == 0) { return; } OOBInfo oobModel = oobList.Find(o => o.id == oobID); oobList.Remove(oobModel); //if (ShowErrorMessageOK("删除当前部队成功") == DialogResult.OK) //{ this.tv_Military.Nodes.Clear(); BindTree(0, oobList); //} } catch (Exception ex) { ShowErrorMessage("删除当前部队失败:" + ex.Message); } }
public void DataGridViewBind(string leaderName = null, string leaderMaxSkill = null, string leaderTraitCode = null) { bindLeaderList = leaderList; DataTable dt = new DataTable(); #region 创建列 DataColumn dtc = new DataColumn("图片", typeof(Bitmap)); dt.Columns.Add(dtc); dtc = new DataColumn("ID", typeof(Int32)); dt.Columns.Add(dtc); dtc = new DataColumn("姓名", typeof(string)); dt.Columns.Add(dtc); dtc = new DataColumn("隶属", typeof(string)); dt.Columns.Add(dtc); //dtc = new DataColumn("类型", typeof(string)); //dt.Columns.Add(dtc); dtc = new DataColumn("技能", typeof(Int32)); dt.Columns.Add(dtc); dtc = new DataColumn("最大", typeof(Int32)); dt.Columns.Add(dtc); dtc = new DataColumn("技能1", typeof(string)); dt.Columns.Add(dtc); dtc = new DataColumn("技能2", typeof(string)); dt.Columns.Add(dtc); dtc = new DataColumn("技能3", typeof(string)); dt.Columns.Add(dtc); dtc = new DataColumn("技能4", typeof(string)); dt.Columns.Add(dtc); #endregion string oobType = GetOOBType(armyTypeEnum); bindLeaderList = bindLeaderList.FindAll(l => l.type == oobType); if (!string.IsNullOrEmpty(leaderName)) { bindLeaderList = bindLeaderList.FindAll(l => l.name.Contains(leaderName)); } if (!string.IsNullOrEmpty(leaderMaxSkill)) { int maxSkill = Convert.ToInt32(leaderMaxSkill); bindLeaderList = bindLeaderList.FindAll(l => l.max_skill == maxSkill); } if (!string.IsNullOrEmpty(leaderTraitCode)) { List <LeaderInfo> newLeaderList = new List <LeaderInfo>(); foreach (LeaderInfo l in bindLeaderList) { if (l.add_trait.Count > 0) { if (!string.IsNullOrEmpty(l.add_trait.Find(at => at == leaderTraitCode))) { newLeaderList.Add(l); } } } bindLeaderList = newLeaderList; } foreach (LeaderInfo leaderInfo in bindLeaderList) { DataRow dr = dt.NewRow(); string leaderPath = ReturnLeaderPicturePath(leaderInfo.picture); Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath); dr["图片"] = m_bmpLeader; dr["ID"] = leaderInfo.ID; dr["姓名"] = leaderInfo.name.Trim(); OOBInfo oobInfo = oobList.Find(o => o.leader == leaderInfo.ID.ToString()); dr["隶属"] = oobInfo == null ? "" : oobInfo.name; //dr["类型"] = leaderInfo.type; dr["技能"] = leaderInfo.skill; dr["最大"] = leaderInfo.max_skill; int num = leaderInfo.add_trait.Count; if (num > 0) { dr["技能1"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[0]).traitName; } if (num > 1) { dr["技能2"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[1]).traitName; } if (num > 2) { dr["技能3"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[2]).traitName; } if (num > 3) { dr["技能4"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[3]).traitName; } dt.Rows.Add(dr); } dataGridView1.DataSource = dt; dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; dataGridView1.AllowUserToAddRows = false; dataGridView1.RowHeadersVisible = false; //去掉最左边的空列 }
private void btn_Save_Click(object sender, EventArgs e) { try { List <OOBInfo> oobList = new List <OOBInfo>(); int ID = Convert.ToInt32(txt_BasicID.Text); OOBInfo oobAddInfo = new OOBInfo(); #region 赋值基本信息 oobAddInfo.id = ID; oobAddInfo.parentID = parentID; if (!((string)cbb_BasicType.SelectedItem).Equals("请选择")) { string attTypeName = (string)cbb_BasicType.SelectedItem;//获取当前选中项 oobAddInfo.armyType = ConvertArmyTypeStringToEnum(attTypeName); } if (!string.IsNullOrEmpty(txt_BasicName.Text)) { oobAddInfo.name = txt_BasicName.Text.Trim(); } if (!string.IsNullOrEmpty(txt_BasicLocation.Text)) { Regex reg = new Regex(@"[0-9][0-9,.]*"); MatchCollection mc = reg.Matches(txt_BasicLocation.Text); if (mc.Count > 0) { if (oobAddInfo.armyType != ArmyTypeEnum.Navy && oobAddInfo.armyType != ArmyTypeEnum.Air) { oobAddInfo.location = mc[0].Value; } else { oobAddInfo.location = mc[0].Value; oobAddInfo.baseID = mc[0].Value; } } } if (cb_Reserve.Enabled && oobAddInfo.armyType == ArmyTypeEnum.Division) { oobAddInfo.is_reserve = cb_Reserve.Checked; } oobList.Add(oobAddInfo); #endregion #region 赋值附属部队的信息 foreach (Control c in this.panel1.Controls) { Add_AttachmentControl aac = (Add_AttachmentControl)c; TextBox txt_AttID = (TextBox)aac.Controls[0].Controls.Find("txt_AttID", false)[0]; int attID = Convert.ToInt32(txt_AttID.Text); OOBInfo oobAttAddInfo = new OOBInfo(); oobAttAddInfo.id = attID; oobAttAddInfo.parentID = ID; TextBox txt_AttName = (TextBox)aac.Controls[0].Controls.Find("txt_AttName", false)[0]; if (!string.IsNullOrEmpty(txt_AttName.Text)) { oobAttAddInfo.name = txt_AttName.Text; } TextBox txt_AttExp = (TextBox)aac.Controls[0].Controls.Find("txt_AttExp", false)[0]; if (!string.IsNullOrEmpty(txt_AttExp.Text)) { oobAttAddInfo.experience = txt_AttExp.Text; } ComboBox cbb_AttType = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttType", false)[0]; if (cbb_AttType.SelectedItem != null) { MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString()); oobAttAddInfo.type = militaryTypeInfo.type; } ComboBox cbb_AttModel = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttModel", false)[0]; if (cbb_AttModel.SelectedItem != null) { MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString()); if (militaryTypeInfo.unitModelList != null || militaryTypeInfo.unitModelList.Count > 0) { oobAttAddInfo.historical_model = militaryTypeInfo.unitModelList.Find(uml => uml.name == cbb_AttModel.SelectedItem.ToString()).modelNum; } } if (oobAddInfo.armyType == ArmyTypeEnum.Navy) { oobAttAddInfo.armyType = ArmyTypeEnum.Ship; } else if (oobAddInfo.armyType == ArmyTypeEnum.Air) { oobAttAddInfo.armyType = ArmyTypeEnum.Wing; } else { oobAttAddInfo.armyType = ArmyTypeEnum.Regiment; } oobList.Add(oobAttAddInfo); } #endregion this.Close(); this.add_military(oobList); } catch (Exception ex) { ShowErrorMessage("保存失败:" + ex.Message); } }
private void Save(object sender, EventArgs e) { try { int ID = Convert.ToInt32(txt_BasicID.Text); OOBInfo oobUpdateInfo = oobList.Find(o => o.id == ID); //移除当前的oob //oobList.Remove(oobUpdateInfo); #region 赋值基本信息 if (!string.IsNullOrEmpty(txt_BasicName.Text)) { oobUpdateInfo.name = txt_BasicName.Text; this.tv_Military.SelectedNode.Text = txt_BasicName.Text; } if (!string.IsNullOrEmpty(txt_BasicLocation.Text)) { Regex reg = new Regex(@"[0-9][0-9,.]*"); MatchCollection mc = reg.Matches(txt_BasicLocation.Text); if (mc.Count > 0) { if (oobUpdateInfo.armyType != ArmyTypeEnum.Navy && oobUpdateInfo.armyType != ArmyTypeEnum.Air) { oobUpdateInfo.location = mc[0].Value; } else { oobUpdateInfo.location = mc[0].Value; oobUpdateInfo.baseID = mc[0].Value; } } } if (cb_Reserve.Enabled && oobUpdateInfo.armyType == ArmyTypeEnum.Division) { oobUpdateInfo.is_reserve = cb_Reserve.Checked; } if (!string.IsNullOrEmpty(txt_LeaderID.Text)) { oobUpdateInfo.leader = txt_LeaderID.Text.Trim(); } //oobList.Add(oobUpdateInfo); #endregion #region 赋值附属部队的信息 int currentAcNum = oobList.FindAll(att => att.parentID == ID && (att.armyType == ArmyTypeEnum.Regiment || att.armyType == ArmyTypeEnum.Ship || att.armyType == ArmyTypeEnum.Wing)).Count; int num = 0; foreach (Control c in this.panel1.Controls) { if (num < currentAcNum) { AttachmentControl ac = (AttachmentControl)c; TextBox txt_AttID = (TextBox)ac.Controls[0].Controls.Find("txt_AttID", false)[0]; int attID = Convert.ToInt32(txt_AttID.Text); OOBInfo oobAttUpdateInfo = oobList.Find(o => o.id == attID); //oobList.Remove(oobAttUpdateInfo); TextBox txt_AttName = (TextBox)ac.Controls[0].Controls.Find("txt_AttName", false)[0]; if (!string.IsNullOrEmpty(txt_AttName.Text)) { oobAttUpdateInfo.name = txt_AttName.Text; } TextBox txt_AttExp = (TextBox)ac.Controls[0].Controls.Find("txt_AttExp", false)[0]; if (!string.IsNullOrEmpty(txt_AttExp.Text)) { oobAttUpdateInfo.experience = txt_AttExp.Text; } ComboBox cbb_AttType = (ComboBox)ac.Controls[0].Controls.Find("cbb_AttType", false)[0]; if (cbb_AttType.SelectedItem != null) { MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString()); oobAttUpdateInfo.type = militaryTypeInfo.type; } ComboBox cbb_AttModel = (ComboBox)ac.Controls[0].Controls.Find("cbb_AttModel", false)[0]; if (cbb_AttModel.SelectedItem != null) { MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString()); if (militaryTypeInfo.unitModelList != null || militaryTypeInfo.unitModelList.Count > 0) { oobAttUpdateInfo.historical_model = militaryTypeInfo.unitModelList.Find(uml => uml.name == cbb_AttModel.SelectedItem.ToString()).modelNum; } } //oobList.Add(oobAttUpdateInfo); } else { Add_AttachmentControl aac = (Add_AttachmentControl)c; TextBox txt_AttID = (TextBox)aac.Controls[0].Controls.Find("txt_AttID", false)[0]; int attID = Convert.ToInt32(txt_AttID.Text); OOBInfo oobAttAddInfo = new OOBInfo(); oobAttAddInfo.id = attID; oobAttAddInfo.parentID = ID; TextBox txt_AttName = (TextBox)aac.Controls[0].Controls.Find("txt_AttName", false)[0]; if (!string.IsNullOrEmpty(txt_AttName.Text)) { oobAttAddInfo.name = txt_AttName.Text; } TextBox txt_AttExp = (TextBox)aac.Controls[0].Controls.Find("txt_AttExp", false)[0]; if (!string.IsNullOrEmpty(txt_AttExp.Text)) { oobAttAddInfo.experience = txt_AttExp.Text; } ComboBox cbb_AttType = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttType", false)[0]; if (cbb_AttType.SelectedItem != null) { MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString()); oobAttAddInfo.type = militaryTypeInfo.type; } ComboBox cbb_AttModel = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttModel", false)[0]; if (cbb_AttModel.SelectedItem != null) { MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString()); if (militaryTypeInfo.unitModelList != null || militaryTypeInfo.unitModelList.Count > 0) { oobAttAddInfo.historical_model = militaryTypeInfo.unitModelList.Find(uml => uml.name == cbb_AttModel.SelectedItem.ToString()).modelNum; } } if (oobUpdateInfo.armyType == ArmyTypeEnum.Navy) { oobAttAddInfo.armyType = ArmyTypeEnum.Ship; } else if (oobUpdateInfo.armyType == ArmyTypeEnum.Air) { oobAttAddInfo.armyType = ArmyTypeEnum.Wing; } else { oobAttAddInfo.armyType = ArmyTypeEnum.Regiment; } oobList.Add(oobAttAddInfo); } num++; } #endregion //this.tv_Military.Nodes.Clear(); BindTree(0, oobList); } catch (Exception ex) { ShowErrorMessage("保存失败:" + ex.Message); } }