使用ComboBox作为过滤器

时间:2013-10-08 19:22:32

标签: c# winforms combobox

我制作了一个程序,它是一种维基,但是在一个程序中。我添加了很多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");
            }
        }

1 个答案:

答案 0 :(得分:0)

代码可能是这样的:

if(cmb.text=="goofy")
    //Code
else if(cmb.text=="mars")
   //Other code
else 
   //BLA BLA