C # Combobox (winforms) Как я могу сделать значения отображаются в процентах - PullRequest
4 голосов
/ 25 мая 2010

У меня есть поле со списком значений (5, 10, 15, 20).

Когда пользователь выбирает значение, я хочу, чтобы оно отображалось в процентах (5%, 10%, 15%, 20%).

Я играл с форматной строкой, используя значение ##%, но это не сработало.

Ответы [ 4 ]

5 голосов
/ 25 мая 2010

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 голос
/ 25 мая 2010

Хммм, это очень странная проблема, я никак не мог ее решить. Если вы хотите, чтобы нормальные числа отображались в вашем выпадающем списке, а последний (после выбора) измените его текст. Я сделал это таким образом (выглядит очень забавно), и это действительно решает эту проблему:)

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    Thread th = new Thread(() => comboBox1.Invoke((Action)(() => comboBox1.Text += @"%"))){ IsBackground = true };
    th.Start();
}
1 голос
/ 25 мая 2010

Вы можете создать собственное поле со списком на основе элемента управления маскированным текстовым полем или отформатировать их вручную. Если ваш пользователь не может ввести свои собственные значения, просто введите их в предварительно отформатированном виде. Если они могут, отформатируйте их вручную, когда в поле со списком возникает событие «изменилось».

1 голос
/ 25 мая 2010

Вы можете установить значение 5, 10, 15, 20 и отображаемый элемент 5%, 10%, 15% и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...