实例中的组合框值(与枚举绑定)
Combobox value (binded with an enum) in an instance
大家好!
我有一个问题。
如果您能看到我的表格,我想我会节省大量文本,所以我们开始吧!
形式:
private void Form1_Load(object sender, EventArgs e)
{
/*
Held h1 = new Held("Tank", Lanes.Top);
Held h2 = new Held("ADC", Lanes.Bot);
Held h3 = new Held("Support", Lanes.Bot);
listBox1.Items.Add(h1);
listBox1.Items.Add(h2);
listBox1.Items.Add(h3);
*/
//Data koppelen
cbRol.DataSource = Enum.GetValues(typeof(Lanes));
}
private void btnAanmaken_Click(object sender, EventArgs e)
{
int getal;
if (CheckEmptyFields())
{
MessageBox.Show("Vul alle velden in!");
}
else
{
if (CheckMovementSpeedIsInt(out getal))
{
string naamHero = tbNaamHero.Text;
Lanes lane = ???
int mSpeedHero = getal;
Held nieuwHeld = new Held(naamHero, lane, getal);
}
}
}
private bool CheckMovementSpeedIsInt(out int getal)
{
return Int32.TryParse(tbMoveSpeed.Text, out getal);
}
private bool CheckEmptyFields()
{
return tbNaamHero.Text == null || tbMoveSpeed.Text == null || cbRol.SelectedItem == null;
}
举行:
class Held
{
private string Naam;
private Lanes Lane;
int MSpeed;
public Held(string aNaam, Lanes aLane, int aMSpeed)
{
this.Naam = aNaam;
this.Lane = aLane;
this.MSpeed = aMSpeed;
}
public override string ToString()
{
return this.Naam + " " + this.Lane.ToString();
}
}
}
车道数:
enum Lanes
{
Top,
Mid,
Bot,
Jungle
}
好的!如您所见,我已将枚举与 ComboBox 组合在一起。我想将选定的值(当用户按下按钮 "Aanmaken/Create" 时)放入实例中。
如何将对象(从 ComboBox)转换为类型(通道)?
如果我还不够清楚,请提醒我!
PS:“???”代码里面是我不知道该放什么的地方,因为这是个问题呵呵。
只需使用以下内容:
Lanes lane = (Lanes)cbRol.SelectedIndex;
这是有效的,因为 enum
是 typeof int
,所以你的 Top
实际上是 0
,等等...
您可以解析您的 Enum.Parse
Lanes lange = (Lanes) Enum.Parse(typeof(Lanes), cbRol.SelectedItem.ToString(), true);
这也适用于索引
Lanes lange = (Lanes) Enum.Parse(typeof(Lanes), cbRol.SelectedIndex.ToString(), true);
大家好!
我有一个问题。
如果您能看到我的表格,我想我会节省大量文本,所以我们开始吧!
形式:
private void Form1_Load(object sender, EventArgs e)
{
/*
Held h1 = new Held("Tank", Lanes.Top);
Held h2 = new Held("ADC", Lanes.Bot);
Held h3 = new Held("Support", Lanes.Bot);
listBox1.Items.Add(h1);
listBox1.Items.Add(h2);
listBox1.Items.Add(h3);
*/
//Data koppelen
cbRol.DataSource = Enum.GetValues(typeof(Lanes));
}
private void btnAanmaken_Click(object sender, EventArgs e)
{
int getal;
if (CheckEmptyFields())
{
MessageBox.Show("Vul alle velden in!");
}
else
{
if (CheckMovementSpeedIsInt(out getal))
{
string naamHero = tbNaamHero.Text;
Lanes lane = ???
int mSpeedHero = getal;
Held nieuwHeld = new Held(naamHero, lane, getal);
}
}
}
private bool CheckMovementSpeedIsInt(out int getal)
{
return Int32.TryParse(tbMoveSpeed.Text, out getal);
}
private bool CheckEmptyFields()
{
return tbNaamHero.Text == null || tbMoveSpeed.Text == null || cbRol.SelectedItem == null;
}
举行:
class Held
{
private string Naam;
private Lanes Lane;
int MSpeed;
public Held(string aNaam, Lanes aLane, int aMSpeed)
{
this.Naam = aNaam;
this.Lane = aLane;
this.MSpeed = aMSpeed;
}
public override string ToString()
{
return this.Naam + " " + this.Lane.ToString();
}
}
}
车道数:
enum Lanes
{
Top,
Mid,
Bot,
Jungle
}
好的!如您所见,我已将枚举与 ComboBox 组合在一起。我想将选定的值(当用户按下按钮 "Aanmaken/Create" 时)放入实例中。
如何将对象(从 ComboBox)转换为类型(通道)?
如果我还不够清楚,请提醒我!
PS:“???”代码里面是我不知道该放什么的地方,因为这是个问题呵呵。
只需使用以下内容:
Lanes lane = (Lanes)cbRol.SelectedIndex;
这是有效的,因为 enum
是 typeof int
,所以你的 Top
实际上是 0
,等等...
您可以解析您的 Enum.Parse
Lanes lange = (Lanes) Enum.Parse(typeof(Lanes), cbRol.SelectedItem.ToString(), true);
这也适用于索引
Lanes lange = (Lanes) Enum.Parse(typeof(Lanes), cbRol.SelectedIndex.ToString(), true);