代码之家  ›  专栏  ›  技术社区  ›  codingguy3000

C组合框(WinForms)如何使值显示为百分比

  •  4
  • codingguy3000  · 技术社区  · 16 年前

    我有一个包含一组值(5、10、15、20)的组合框。

    当用户选择一个值时,我希望它们显示为百分比(5%、10%、15%、20%)。

    我在用%的值玩格式字符串,但这不起作用。

    4 回复  |  直到 15 年前
        1
  •  1
  •   taylonr    16 年前

    您可以将值设置为5、10、15、20,显示成员设置为5%、10%、15%等。

        2
  •  5
  •   doobop    16 年前

    FormatString应该可以工作,但它会将数字乘以100。 可能需要在字符串前面添加0来处理0%。

    这个代码对我有用。

        private void Form1_Load(object sender, EventArgs e)
        {
            this.comboBox1.FormatString = "##0%";
            comboBox1.Items.Add(0);
            comboBox1.Items.Add(0.33);
            comboBox1.Items.Add(0.50);
            comboBox1.Items.Add(0.67);
            comboBox1.Items.Add(1);
        }
    
        3
  •  1
  •   dlras2    16 年前

    您可以基于屏蔽文本框控件创建自己的组合框,也可以手动设置它们的格式。如果用户不能输入自己的值,只需输入预先格式化的值。如果可以,则在组合框引发它的Changed事件时手动格式化它们。

        4
  •  1
  •   Lukas Å alkauskas    16 年前

    嗯,这是个很奇怪的问题,我不能用任何方法来解决这个问题。如果您想在组合框中显示正常数字,而在选择后显示正常数字,请更改文本。我是这样做的(看起来很有趣),它确实解决了这个问题。

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Thread th = new Thread(() => comboBox1.Invoke((Action)(() => comboBox1.Text += @"%"))){ IsBackground = true };
        th.Start();
    }
    
    推荐文章