gpt4 book ai didi

c# - 文本框属性

转载 作者:行者123 更新时间:2023-11-30 21:01:06 25 4
gpt4 key购买 nike

我正在使用 C# 编写 .net 程序。我想问一下如何让用户调整大小文本框,以便他可以放大或缩小文本框

最佳答案

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

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

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

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;
}
}
}

关于c# - 文本框属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14450800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com