C#Combobox(winforms)如何使值显示为百分比

时间:2010-05-25 15:33:00

标签: c# winforms

我有一组带有一组值的组合框(5,10,15,20)。

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

我正在使用值##%播放格式字符串,但这不起作用。

4 个答案:

答案 0 :(得分:5)

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);
    }

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您可以根据蒙版文本框控件创建自己的组合框,也可以手动格式化它们。如果您的用户无法输入自己的值,只需在预先格式化后输入即可。如果可以,则在组合框引发其更改事件时手动格式化它们。

答案 3 :(得分:1)

嗯,这是一个非常奇怪的问题,我无法以任何方式解决这个问题。如果要在组合框中显示正常数字,后者(在选择之后)更改其文本。我这样做了(看起来很有趣),它确实解决了这个问题:)

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