首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Textbox属性

Textbox属性
EN

Stack Overflow用户
提问于 2013-01-22 10:51:29
回答 2查看 450关注 0票数 2

我正在使用C#编写一个.net程序。我想问一下,怎样才能让用户调整文本框的大小,以便放大或缩小文本框

EN

回答 2

Stack Overflow用户

发布于 2013-01-22 11:33:24

这在Winforms中很容易做到,只需要几行代码。Windows中的每个窗口都具有由用户调整大小的先天能力。这通常只适用于顶级窗口(窗体),但它同样适用于任何客户端窗口。

关键是响应WM_NCHITTEST消息。这是当你点击一个窗口时,Windows发送给它的消息。它本质上是在问“什么被击中了?”你可以简单地说“那个角落被击中了”,然后Windows就会从那里拿走它。它会更改光标,以指示可以拖动角。并在用户移动鼠标时自动调整窗口大小。

向您的项目添加一个新类,并粘贴如下所示的代码。编译。将新控件从工具箱顶部拖放到窗体上,并将其Multiline属性设置为true。按F5键并拖动文本框的右下角以查看其工作情况。

代码语言:javascript
复制
using System;
using System.Drawing;
using System.Windows.Forms;

class SizeableTextBox : TextBox {
    protected override void WndProc(ref Message m) {
        base.WndProc(ref m);
        // Intercept WM_NCHITTEST
        if (m.Msg == 0x84 && this.Multiline) {
            // Find out where the cursor is located
            var pos = PointToClient(new Point(m.LParam.ToInt32()));
            // Return HTBOTTOMRIGHT if in the lower-right corner
            if (pos.X >= this.Width - 12 && pos.Y >= this.Height - 12) m.Result = (IntPtr)17;
        }
    }
}
票数 4
EN

Stack Overflow用户

发布于 2013-01-22 10:53:29

文本框没有允许你手动调整大小的原生属性。您可以做的是设置dockanchor属性,以便当用户调整窗体大小时,它将随之调整textbox的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14450800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档