我制作了一个程序,它是一种维基,但是在一个程序中。我添加了很多pictureBoxes,我有3个过滤器来排序那些pictureBoxes:ROLE,ATTACK TYPE和NAME。 我想做的是,如果你选择攻击类型RANGED它会禁用其他攻击类型不同于RANGED的图片框。
我尝试用计时器比较每个Hero(我为它制作了一个不同的类),但我不知道该怎么做。
我也试过这个
if(comboBox1.Text == "RANGED") { //do stuff }
但是我不知道如何访问我制作的数组中的所有英雄,并检查它们是否具有atkType = RANGED。
我的Hero.cs课程:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace WindowsFormsApplication1
{
public struct Hero
{
public string Name;
public string Role; /* carry, disabler, lane support, initiator, jungler, support, durable, nuker, pusher, escape */
public string atkType; /* melee or ranged */
public string Type; /* strength, agility or intelligence */
public string imgName;
public Hero(string name, string role, string atktype, string type, string imgname)
{
Name = name;
Role = role;
atkType = atktype;
Type = type;
imgName = imgname;
}
public static Hero[] heroes = new Hero[] {
new Hero() {Name = "test", Role = "", atkType = "Melee", Type = "Strength", imgName = "test" }
};
}
}
我设法让过滤器工作,但现在,只有一个问题:我无法处理(图像不会卸载)当前加载的图像,无法加载新的图像。 我尝试了什么:
if (melee == false && ranged == false)
{
for (int i = 0; i < Hero.heroes.Length; i++)
{
imgs[i].Load("http://cdn.dota2.com/apps/dota2/images/heroes/" + Hero.heroes[i].imgName + "_sb.png");
comboBox3.Items.Add(Hero.heroes[i].Name);
//imgs[i].MouseHover += displayInfo(i);
}
}
if (ranged == true)
{
for (int i = 0; i < Hero.heroes.Length && Hero.heroes[i].atkType.Contains("Ranged"); i++)
{
imgs[i].Image.Dispose();
imgs[i].Load("http://cdn.dota2.com/apps/dota2/images/heroes/" + Hero.heroes[i].imgName + "_sb.png");
}
}
答案 0 :(得分:0)
代码可能是这样的:
if(cmb.text=="goofy")
//Code
else if(cmb.text=="mars")
//Other code
else
//BLA BLA