我有以下的Winform的游戏应用,我发展:
我想要做的就是进入下梁弧线和梁设置所需的值,选择武器名字在listBox1中然后打右箭头按钮来存储listBox2这些设置。我希望能够存储多种类型的武器,当我在listBox2他们之间单击,弧线和设置适当的值更新。
这是我当前的代码:
public class beamWeaponClass
{
public string beamValue, beamActiveValue, beamArcsValue,
beamBonusValue, beamCostValue, beamDamageValue, beamLoadValue,
beamLockValue, beamNameValue, beamRangeValue, beamRecycleValue,
listNameLabel;
public override string ToString()
{
return listNameLabel;
}
}
public void addBeamWeaponButton_Click(object sender, EventArgs e)
{
beamWeaponClass newBeamWeapon = new beamWeaponClass();
newBeamWeapon.beamValue = "0 0 1 1 " + addedBeamWeaponsList.Items.Count.ToString(); // Beam
newBeamWeapon.beamActiveValue = "0"; // Beam Active
newBeamWeapon.beamArcsValue = calculateArcs(); // Beam Arcs
newBeamWeapon.beamBonusValue = beamBonus.Text; // Beam Bonus
newBeamWeapon.beamCostValue = beamCost.Text; // Beam Cost
newBeamWeapon.beamDamageValue = "1"; // Beam Damage
newBeamWeapon.beamLoadValue = "0"; // Beam Load
newBeamWeapon.beamLockValue = "0"; // Beam Lock
newBeamWeapon.beamNameValue = beamWeaponList.GetItemText(beamWeaponList.SelectedItem); // Beam Name
newBeamWeapon.beamRangeValue = beamRange.Text; // Beam Range
newBeamWeapon.beamRecycleValue = beamRecycle.Text; // Beam Recycle
newBeamWeapon.listNameLabel = beamWeaponList.GetItemText(beamWeaponList.SelectedItem);
addedBeamWeaponsList.Items.Add(newBeamWeapon);
}
private void selectedBeamWeapons_SelectedIndexChanged(object sender, EventArgs e)
{
//beamBonus.Text = newBeamWeapon.beamBonusValue;
//beamCost.Text = newBeamWeapon.beamCost.Text;
//beamRange.Text = newBeamWeapon.beamRange.Text; // Beam Range
//beamRecycle.Text = newBeamWeapon.beamRecycle.Text;
}
private void removeBeamWeaponButton_Click(object sender, EventArgs e)
{
}
正如你所看到的,我试图用一个类来存储这些值,当我点击右箭头按钮。我已经然后一直试图看看这些值都被存储与selectedBeamWeapons_SelectedIndexChanged()
方法,但我注释掉的代码,因为我得到The name 'newBeamWeapon' does not exist in the current context
错误。按钮自身的工作原理,至少在一定程度上。从一个listBox1中发送值listBox2工作,我只是不知道如果这些值与下去。
右边的按钮是重新排序,并选择一个,修改其设置并保存。我现在这么多我并不担心,我想如果我可以钉存储和访问,然后改变应该是相当容易的。
我不知道如果我即使在正确的轨道上存储的值更别说访问它们。如果有人走了过来,我做了什么,让我知道我可以访问这些存储的设置,我真的很感激它。
我希望所有有意义。
你宣布newBeamWeapon
在addBeamWeaponButton_Click
局部变量。因此,它只能有可见。但在selectedBeamWeapons_SelectedIndexChanged
,最好是用实际的选择,因为它可能通过另一个用户交互更改以及(当用户点击进入该列表)。
var beamWeapon = addedBeamWeaponsList.SelectedItem as beamWeaponClass;
if (beamWeapon != null) {
beamBonus.Text = beamWeapon.beamBonusValue;
beamCost.Text = beamWeapon.beamCost.Text;
beamRange.Text = beamWeapon.beamRange.Text; // Beam Range
beamRecycle.Text = beamWeapon.beamRecycle.Text;
}
该beamWeaponClass
很奇怪。你真的要存储所有这些值作为字符串?如何你想对那些值执行算术?