<tfoot id='BeSPF'></tfoot>
      <bdo id='BeSPF'></bdo><ul id='BeSPF'></ul>

    1. <i id='BeSPF'><tr id='BeSPF'><dt id='BeSPF'><q id='BeSPF'><span id='BeSPF'><b id='BeSPF'><form id='BeSPF'><ins id='BeSPF'></ins><ul id='BeSPF'></ul><sub id='BeSPF'></sub></form><legend id='BeSPF'></legend><bdo id='BeSPF'><pre id='BeSPF'><center id='BeSPF'></center></pre></bdo></b><th id='BeSPF'></th></span></q></dt></tr></i><div id='BeSPF'><tfoot id='BeSPF'></tfoot><dl id='BeSPF'><fieldset id='BeSPF'></fieldset></dl></div>
      <legend id='BeSPF'><style id='BeSPF'><dir id='BeSPF'><q id='BeSPF'></q></dir></style></legend>

      <small id='BeSPF'></small><noframes id='BeSPF'>

    2. 在文本框控件内添加标签

      时间:2023-06-09
        <i id='s3ENG'><tr id='s3ENG'><dt id='s3ENG'><q id='s3ENG'><span id='s3ENG'><b id='s3ENG'><form id='s3ENG'><ins id='s3ENG'></ins><ul id='s3ENG'></ul><sub id='s3ENG'></sub></form><legend id='s3ENG'></legend><bdo id='s3ENG'><pre id='s3ENG'><center id='s3ENG'></center></pre></bdo></b><th id='s3ENG'></th></span></q></dt></tr></i><div id='s3ENG'><tfoot id='s3ENG'></tfoot><dl id='s3ENG'><fieldset id='s3ENG'></fieldset></dl></div>
            <tbody id='s3ENG'></tbody>
            <legend id='s3ENG'><style id='s3ENG'><dir id='s3ENG'><q id='s3ENG'></q></dir></style></legend>
            1. <tfoot id='s3ENG'></tfoot>
              • <bdo id='s3ENG'></bdo><ul id='s3ENG'></ul>

                <small id='s3ENG'></small><noframes id='s3ENG'>

              • 本文介绍了在文本框控件内添加标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我想创建一个从 TextBox 继承的控件,它有一个标签,其中粘贴"到文本框的右侧,并且该文本不是用户可编辑的,而是由属性设置的.如何才能做到这一点?我意识到这个 UX 是一个坏主意的原因可能有很多,但我必须这样做.

                I want to make a control which inherits from TextBox and which has a label inside which "sticks" to the right side of the text box and which text is not user-editable but rather is set by a property. How can this be done? I realize there may be many reasons why this UX is a bad idea, but I have to do it this way.

                推荐答案

                改编自 Hans Passant 的 Winforms 文本框内的按钮答案:

                Adapting from Hans Passant's Button inside a winforms textbox answer:

                public class TextBoxWithLabel : TextBox {
                
                  [DllImport("user32.dll")]
                  private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
                
                  Label label = new Label();
                
                  public TextBoxWithLabel() {
                    label.BackColor = Color.LightGray;
                    label.Cursor = Cursors.Default;
                    label.TextAlign = ContentAlignment.MiddleRight;
                    this.Controls.Add(label);
                  }
                
                  private int LabelWidth() {
                    return TextRenderer.MeasureText(label.Text, label.Font).Width;
                  }
                
                  public string LabelText {
                    get { return label.Text; }
                    set {
                      label.Text = value;
                      SendMessage(this.Handle, 0xd3, (IntPtr)2, (IntPtr)(LabelWidth() << 16));
                      OnResize(EventArgs.Empty);
                    }
                  }
                
                  protected override void OnResize(EventArgs e) {
                    base.OnResize(e);
                    int labelWidth = LabelWidth();
                    label.Left = this.ClientSize.Width - labelWidth;
                    label.Top = (this.ClientSize.Height / 2) - (label.Height / 2);
                    label.Width = labelWidth;
                    label.Height = this.ClientSize.Height;
                  }
                }
                

                结果:

                这篇关于在文本框控件内添加标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:使用 VB.NET 在窗口窗体中的 TextBox 中的占位符 下一篇:在 wpf 文本框中开始新行

                相关文章

                  <bdo id='TOvRd'></bdo><ul id='TOvRd'></ul>

                <legend id='TOvRd'><style id='TOvRd'><dir id='TOvRd'><q id='TOvRd'></q></dir></style></legend>
                <tfoot id='TOvRd'></tfoot>

                1. <i id='TOvRd'><tr id='TOvRd'><dt id='TOvRd'><q id='TOvRd'><span id='TOvRd'><b id='TOvRd'><form id='TOvRd'><ins id='TOvRd'></ins><ul id='TOvRd'></ul><sub id='TOvRd'></sub></form><legend id='TOvRd'></legend><bdo id='TOvRd'><pre id='TOvRd'><center id='TOvRd'></center></pre></bdo></b><th id='TOvRd'></th></span></q></dt></tr></i><div id='TOvRd'><tfoot id='TOvRd'></tfoot><dl id='TOvRd'><fieldset id='TOvRd'></fieldset></dl></div>

                  <small id='TOvRd'></small><noframes id='TOvRd'>