繁体   English   中英

C# 组合框不显示项目

[英]C# Combo Box not display items

我试图让这段代码显示“英里到公里、公里到英里、英尺到米、米到英尺等等”的选项,但在加载表单时,组合框是空的。 我错过了什么? 这是在 Visual Studio 中用 C# 编码的。

我试图拉入组合框的数据在conversionTable 下。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Conversions
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int k;
        string[,] conversionTable = {
{"Miles to kilometers", "Miles", "Kilometers", "1.6093"},
{"Kilometers to miles", "Kilometers", "Miles", "0.6214"},
{"Feet to meters", "Feet", "Meters", "0.3048"},
{"Meters to feet", "Meters", "Feet", "3.2808"},
{"Inches to centimeters", "Inches", "Centimeters", "2.54"},
{"Centimeters to inches", "Centimeters", "Inches", "0.3937"}
};

        private void Form1_Load(object sender, EventArgs e)
        {
            cboConversions.Items.Add(conversionTable[0, 0]);
            cboConversions.Items.Add(conversionTable[1, 0]);
            cboConversions.Items.Add(conversionTable[2, 0]);
            cboConversions.Items.Add(conversionTable[3, 0]);
            cboConversions.Items.Add(conversionTable[4, 0]);
            cboConversions.Items.Add(conversionTable[5, 0]);
            cboConversions.SelectedIndex = 0;
        }

        private void cboConversions_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtLength.Clear();
            k = cboConversions.SelectedIndex;
            lblFromLength.Text = conversionTable[k, 1]; // to change the label depending upon user selection
            lblToLength.Text = conversionTable[k, 2];// to change the label depending upon user selection
            txtLength.Focus(); //focus on txtLength

        }


        public bool IsDecimal(TextBox textBox, string name)
        {
            try
            {
                Convert.ToDecimal(textBox.Text);
                return true;
            }
            catch (FormatException)
            {
                MessageBox.Show(name + " must be a decimal number.", "Entry Error");
                textBox.Focus();
                return false;
            }
        }

        private void btnCalc_Click(object sender, EventArgs e)
        {
            bool p = IsDecimal(txtLength, "length"); //decimal check
            if (p == true)
            {
                double a = Convert.ToDouble(txtLength.Text);
                double unit = Convert.ToDouble(conversionTable[k, 3]);
                double ans = a * unit;
                lblCalculatedLength.Text = ans.ToString(); // final conversion display
            }
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

这是表格

表格1

如果有人有类似的问题。

组合框没有为我填充的原因是因为在窗体设计器视图中未分配 Load 属性。 我通过单击表单,找到 load 属性并将其分配给Form1_Load来修复它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM