Example #1
0
        void tbInputKeyup(object sender, KeyEventArgs e)
        {
            CTextBox tbSender = (CTextBox)sender;

            if (tbSender.MaxCharCount != 0)
            {
                string sLeft = "[" + tbSender.Text.Length + " / " + tbSender.MaxCharCount + "]";
                int    nPos  = 0;
                for (nPos = 0; nPos < MessageLabel(tbSender.AccessibleDescription).Text.Length; nPos++)
                {
                    if (MessageLabel(tbSender.AccessibleDescription).Text[nPos] == '[')
                    {
                        break;
                    }
                }
                string sNewText = "";
                if (nPos < MessageLabel(tbSender.AccessibleDescription).Text.Length)
                {
                    sNewText = MessageLabel(tbSender.AccessibleDescription).Text.Remove(nPos) + sLeft;
                }
                else
                {
                    sNewText = MessageLabel(tbSender.AccessibleDescription).Text + " " + sLeft;
                }
                MessageLabel(tbSender.AccessibleDescription).Text = sNewText;
            }
            if (Convert.ToInt32(tbSender.CreateGraphics().MeasureString(tbSender.Text, tbSender.Font).Width) > tbSender.Width)
            {
                tbSender.Width = Convert.ToInt32(tbSender.CreateGraphics().MeasureString(tbSender.Text, tbSender.Font).Width);
                int nCurrentCursorPos = tbSender.SelectionStart;
                tbSender.SelectionStart = 0;
                tbSender.SelectionStart = nCurrentCursorPos;
            }
            else if (tbSender.OriginalWidth < tbSender.Width && tbSender.Width > Convert.ToInt32(tbSender.CreateGraphics().MeasureString(tbSender.Text, tbSender.Font).Width))
            {
                if (Convert.ToInt32(tbSender.CreateGraphics().MeasureString(tbSender.Text, tbSender.Font).Width) < tbSender.OriginalWidth)
                {
                    tbSender.Width = tbSender.OriginalWidth;
                }
                else
                {
                    tbSender.Width = Convert.ToInt32(tbSender.CreateGraphics().MeasureString(tbSender.Text, tbSender.Font).Width);
                }
            }
            MessageLabel(tbSender.AccessibleDescription).Location = new Point(tbSender.Left + tbSender.Width + 10, tbSender.Top);
        }