c# winformz中 textbox 控件 文字如何垂直居中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winformz中 textbox 控件 文字如何垂直居中?相关的知识,希望对你有一定的参考价值。

方法一:使用label代替textBox,要输入就使用按键或者用keypress来实现,他有ContentAlignment属性,这是最简单的办法
方法二:自定义textBox控件
参考技术A 单行没有垂直问题,多行时需要继承一个TextBox类,然后重写onpaint。本回答被提问者采纳 参考技术B 设置TextAlign属性,选择Center即可。

c# winform开发,textbox控件问题

如下图,如果在自己的程序里出现这样的输入框效果,带三个小点的按钮,我查了百度,似乎只有自己写用户控件才能,vs2008自带的控件不能有这样的效果么?

用户控件:

  1.创建用户控件

 2. 在用户控件上拖放一个label,一个textbox,一个按钮

      并设置控件的属性如下:

      label:设置lable的width:260,height:1   backcolor为黑色,这样label就变成了一条黑色下划线

      textbox:设置boderstyle的属性为none

      button:设置按钮的image为一张搜索图片

  3.主要代码:

 public partial class UCLineTextBox : UserControl

   

        public UCLineTextBox()

       

            InitializeComponent();

       


        [Category("自定义"),Description("显示文本内容")]

        public override string Text

       

            get

           

                return tb.Text;

           

            set

           

                tb.Text = value;

           


       


        public delegate void ButtonClick();

        public event ButtonClick ButtonSelectClick;


        private void tb_Enter(object sender, EventArgs e)

       

            //当鼠标进入文本框的时候,按钮可见

            btn.Visible = true;

       


        private void tb_Leave(object sender, EventArgs e)

       

            //当鼠标离开文本框的时候,按钮消失

            btn.Visible = false;

       


        private void UCLineTextBox_Load(object sender, EventArgs e)

       

            btn.Visible = false;

       


        private void btn_Click(object sender, EventArgs e)

       

            try

           

                ButtonSelectClick.DynamicInvoke(null);

           

            catch (Exception)

           

                

                return;

           

       

    

4.编译该控件,然后在工具箱中就可以看到此控件,然后把该控件托到界面上,就可以看到效果了。

你也可以使用Gdi+集成TextBox手绘,但相对来说比较麻烦

参考技术A 自带的控件中没有这样的效果控件 参考技术B 不能 只有自己写~

以上是关于c# winformz中 textbox 控件 文字如何垂直居中?的主要内容,如果未能解决你的问题,请参考以下文章

C#中textBox控件为怎么进行提示

c# 怎么将textbox控件中的内容转换为string

C#怎么给动态生成的控件(Textbox)赋值。

C# textbox中鼠标光标位置始终在最后 谢谢

求高手指点C#,DataGrid控件想点击某行就在TextBox中显示

C#中如何限制Textbox控件中只能输入数字,要能用退格的