我製作了一個程序,它是一種wiki,但在一個程序中。我已經添加了很多pictureBoxes,並且我有3個過濾器來排序這些pictureBoxes:ROLE,ATTACK TYPE和NAME。 我想要做的是,如果您選擇攻擊類型RANGED,則會禁用其他具有與RANGED不同的攻擊類型的圖片框。使用ComboBox作爲過濾器
我試着用一個計時器比較每個英雄(我爲它做了一個不同的類),但我不知道該怎麼做。
我也試過這個
if(comboBox1.Text == "RANGED") { //do stuff }
但我不知道我怎麼能訪問所有的英雄組成的數組我做了裏面,並檢查他們是否有atkType =不等。
我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");
}
}
顛簸顛簸顛簸是什麼 – Alexandre
你的意思是「無法處理」的圖像?一個錯誤,沒有發生,內存泄漏......? –
好吧,圖像沒有被卸載。 – Alexandre