从组合框项目创建变量

时间:2019-08-05 19:30:26

标签: c# .net visual-studio-2019

我最近开始使用Visual Studio将一些较旧的python脚本更新为独立的UI。我有一些python经验,但是C#相当新。目前,我正在使用一个计算器,该计算器将接受两个用户输入,并根据两个组合框中的项目计算高度和宽度。

基本上,用户会在文本框中输入像素大小和文件大小,然后从combobox1(BW(1),Color(3)或Color-IR(4))中选择图像类型,以便进行计算需要在组合框2(8位或16位)中引用与特定图像相关的(1、3或4)。

最终,我将从这些输入中计算出可以在项目准备过程中使用的高度和宽度。我已经设置了UI,并具有用于像素大小和文件大小的代码,并从下拉列表的属性菜单中将数据手动添加到两个组合框中。

我想从下拉菜单的项目中创建特定的变量,以在我的所有数学方程式中使用。

如果我的像素大小为0.2,文件大小为250mb,颜色和16位...计算。

在帮助我创建一条类似于...的语句时有一点帮助

IF(combobox1.text ==“ color”)和(combobox2.text ==“ 8 bit”)

//数学

...或者对像我这样的C#菜鸟的最佳操作方法的另一条建议,将不胜感激!

我曾尝试为combobox1创建一个字典,其中包含图像的类型和与之相关的数字,但是如果用户选择将其应用到Color中,我不完全了解如何从Color中提取(3)。我的方程式。

public partial class Form1 : Form
{

    Dictionary<string, int> ColorBands = new Dictionary<string, int>
    {
        {"BW", 1 },
        {"Color", 3 },
        {"Color-IR", 4 }
    };



    public Form1()
    {
        InitializeComponent();
    }
    private void BT_HeightAndWidth_Click(object sender, EventArgs e)
    {

        try
        {
            // Calculate Height and Width from Pixel Value and Sheet Size.
            decimal PixVal;
            if (!decimal.TryParse(TXB_PixelSize.Text, out PixVal)) ;
            {
                MessageBox.Show("Pixel Size isn't valid!");
                return;
            }
            decimal SheetSize;
            if (!decimal.TryParse(TXB_SheetSize.Text, out SheetSize)) ;
            {
                MessageBox.Show("Sheet Size isn't valid!");
                return;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

1 个答案:

答案 0 :(得分:0)

你快到了。

您可以使用组合框的SelectedValue属性来获取选定的值。然后使用Dictionary.TryGetValue()获取适当的数字。

var selected = combobox1.SelectedValue.ToString();
if (ColorBands.TryGetValue(selected, out int value))
{
    // Use it
}