【问题标题】:Windows Form App Float to StringWindows 窗体应用程序浮点到字符串
【发布时间】:2018-05-05 14:27:32
【问题描述】:

下面是我的一些不工作的代码。我想看看它可以计算文本框中的空格数,所以我让它在消息框中显示数字,它目前只是抛出一个空白。问题出在浮点数到字符串的转换或计数器中。

    private static string _globalVar = "n";

    public static string GlobalVar
    {
        get { return _globalVar; }
        set { _globalVar = value; }
    }
    public Form1()
    {
        InitializeComponent();
        button1.Text = "Enter";
    }
    string LNum { get; set; }
    public void button1_Click_1(object sender, EventArgs e)
    {
        MessageBox.Show(LNum);
    }

    public void richTextBox1_TextChanged(object sender, System.Windows.Forms.KeyEventArgs e)
    {
        float n = 0;

        if (Control.ModifierKeys == Keys.Space)
        {   
            n = n + 1; ;
        }
        string.Format("{0:N1}", n);
        string LNum = Convert.ToString(n);

    }

【问题讨论】:

    标签: c# string floating-point counter windows-forms-designer


    【解决方案1】:

    您正在做的事情是了解如何以及何时引发事件以及如何利用它们来自定义应用程序行为的绝佳方式,这与我们许多人多年来所做的事情相似。

    根据你所说的你想做的,有几个问题。如果你看一下这段代码,它会做你想做的事。

        public void button1_Click(object sender, EventArgs e)
        {
            int n = 0;
            for (int counter = 0; counter < richTextBox1.TextLength; counter++)
            {
                if (richTextBox1.Text[counter] == ' ')
                {
                    n++;
                }
            }
    
            MessageBox.Show(n.ToString("N1"));
        }
    

    主要区别在于我只在单击按钮时查看输入的文本。 (每次显示的文本发生变化时都会运行 TextChanged)。我选择不使用float 变量来存储空格数,因为该数始终是整数。

    此外,TextChanged System.Windows.Forms.KeyEventArgs e 的参数不正确,如果正确绑定到 TextChanged 事件,将永远无法编译。

    KeyEventArgs 参数由KeyUpKeyDown 事件使用。如果您使用这些事件,您将查看每次按下空格键时的计数,而不是文本框中的空格数。正如它们的名字所暗示的那样,每次键盘上的键向上(按下)和向下(释放)时都会引发事件。

    【讨论】:

    • 哇,谢谢!我只是在胡闹,但您的评论很有帮助,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多