使用两个 checkedlistbox c# 的货币转换器,vb 2010
Currency Converter using two checkedlistbox c#, vb 2010
我对 C# 有点陌生,我有一个作业要做:
谁能帮我弄清楚如何从美元转换为欧元的按钮代码?
这就是到目前为止所做的:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
// only allow one decimal point
if (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
}
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
for (int ix = 0; ix < checkedListBox1.Items.Count; ++ix)
if (ix != e.Index) checkedListBox1.SetItemChecked(ix, false);
}
private void checkedListBox2_ItemCheck(object sender, ItemCheckEventArgs e)
{
for (int ix = 0; ix < checkedListBox2.Items.Count; ++ix)
if (ix != e.Index) checkedListBox2.SetItemChecked(ix, false);
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
我不知道 checkListBox
es 的用途是什么,但是您可以通过这种方式将美元转换为欧元:
private void button1_Click(object sender, EventArgs e)
{
try
{
textBox1.Text = (Double.Parse(textBox1.Text) * 0.88).ToString(); // 0.88 EUR = 1 USD
}
catch { }
}
使用 try
语句,这样如果您插入无法解析的内容到 Double
,程序就不会崩溃
如果希望结果只显示点后2位,可以使用textBox1.Text = (Math.Round(Double.Parse(textBox1.Text) * 0.88, 2)).ToString();
编辑
所以我很无聊,想找点事做,然后决定编写一些货币转换器的脚本,让您从中了解一些有关 ComboBox
的知识。然后就是:
double[] dcurrency = { 1, 1.13, 1.52 }; // Currency conversion to USD (By order: USD, EUR, GBP)
double[] currency = { 1, 0.88, 0.66 }; // Currency conversion from USD (By order: USD, EUR, GBP)
string[] currencies = { "USD", "EUR", "GBP" };
public Form1()
{
InitializeComponent();
comboBox1.Items.AddRange(currencies);
comboBox2.Items.AddRange(currencies);
}
private void button1_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == -1 || comboBox2.SelectedIndex == -1)
{
textBox2.Text = "ERROR";
return;
}
try
{
double c1 = Double.Parse(textBox1.Text);
textBox2.Text = (c1 * dcurrency[comboBox1.SelectedIndex] * currency[comboBox2.SelectedIndex]).ToString();
}
catch { textBox2.Text = "ERROR"; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == comboBox2.SelectedIndex)
{
((ComboBox)sender).SelectedIndex = -1;
textBox2.Text = "ERROR";
return;
}
if(comboBox1.SelectedIndex > -1 && comboBox2.SelectedIndex > -1)
button1_Click(button1, e);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex > -1 && comboBox2.SelectedIndex > -1)
button1_Click(button1, e);
}
}
它使用两个 TextBox
es - textBox1
和 textBox2
和两个 ComboBox
es - comboBox1
和 comboBox2
。 private void comboBox_SelectedIndexChanged
是两个 ComboBox
es 的一个事件。当文本更改以及 ComboBox
的索引之一发生更改时,它会自动更新转换。
我使用了两个 Double
数组,因为使用 ComboBox
的索引始终将值转换为美元然后再转换为正确的货币比编写大量 if
更简单陈述和检查每一种可能性。重要的是 Double
数组和 ComboBox
es 的索引将针对相同的货币进行调整(0 = 美元、1 = 欧元、2 = 英镑等)。另外,我为 ComboBox
的项目使用了一个 String
数组,只是为了向您展示它是如何编写的。您也可以将这些项目插入每个 ComboBox
的属性菜单中。享受学习!
我对 C# 有点陌生,我有一个作业要做:
谁能帮我弄清楚如何从美元转换为欧元的按钮代码?
这就是到目前为止所做的:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
// only allow one decimal point
if (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
}
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
for (int ix = 0; ix < checkedListBox1.Items.Count; ++ix)
if (ix != e.Index) checkedListBox1.SetItemChecked(ix, false);
}
private void checkedListBox2_ItemCheck(object sender, ItemCheckEventArgs e)
{
for (int ix = 0; ix < checkedListBox2.Items.Count; ++ix)
if (ix != e.Index) checkedListBox2.SetItemChecked(ix, false);
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
我不知道 checkListBox
es 的用途是什么,但是您可以通过这种方式将美元转换为欧元:
private void button1_Click(object sender, EventArgs e)
{
try
{
textBox1.Text = (Double.Parse(textBox1.Text) * 0.88).ToString(); // 0.88 EUR = 1 USD
}
catch { }
}
使用 try
语句,这样如果您插入无法解析的内容到 Double
如果希望结果只显示点后2位,可以使用textBox1.Text = (Math.Round(Double.Parse(textBox1.Text) * 0.88, 2)).ToString();
编辑
所以我很无聊,想找点事做,然后决定编写一些货币转换器的脚本,让您从中了解一些有关 ComboBox
的知识。然后就是:
double[] dcurrency = { 1, 1.13, 1.52 }; // Currency conversion to USD (By order: USD, EUR, GBP)
double[] currency = { 1, 0.88, 0.66 }; // Currency conversion from USD (By order: USD, EUR, GBP)
string[] currencies = { "USD", "EUR", "GBP" };
public Form1()
{
InitializeComponent();
comboBox1.Items.AddRange(currencies);
comboBox2.Items.AddRange(currencies);
}
private void button1_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == -1 || comboBox2.SelectedIndex == -1)
{
textBox2.Text = "ERROR";
return;
}
try
{
double c1 = Double.Parse(textBox1.Text);
textBox2.Text = (c1 * dcurrency[comboBox1.SelectedIndex] * currency[comboBox2.SelectedIndex]).ToString();
}
catch { textBox2.Text = "ERROR"; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == comboBox2.SelectedIndex)
{
((ComboBox)sender).SelectedIndex = -1;
textBox2.Text = "ERROR";
return;
}
if(comboBox1.SelectedIndex > -1 && comboBox2.SelectedIndex > -1)
button1_Click(button1, e);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex > -1 && comboBox2.SelectedIndex > -1)
button1_Click(button1, e);
}
}
它使用两个 TextBox
es - textBox1
和 textBox2
和两个 ComboBox
es - comboBox1
和 comboBox2
。 private void comboBox_SelectedIndexChanged
是两个 ComboBox
es 的一个事件。当文本更改以及 ComboBox
的索引之一发生更改时,它会自动更新转换。
我使用了两个 Double
数组,因为使用 ComboBox
的索引始终将值转换为美元然后再转换为正确的货币比编写大量 if
更简单陈述和检查每一种可能性。重要的是 Double
数组和 ComboBox
es 的索引将针对相同的货币进行调整(0 = 美元、1 = 欧元、2 = 英镑等)。另外,我为 ComboBox
的项目使用了一个 String
数组,只是为了向您展示它是如何编写的。您也可以将这些项目插入每个 ComboBox
的属性菜单中。享受学习!