gpt4 book ai didi

c# - Winforms 中可调整大小的文本框

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

我想知道如何让用户在运行时自行调整文本框的大小。最好弹出文本框边框上的小标签,并且可以根据大多数应用拖动它们调整大小。

是否可以使用 winforms 在本地执行此操作?如果没有,是否有图书馆可以帮助做到这一点?

如果可能,我宁愿使用原生组件。我所有的谷歌搜索都出现了误报。

最佳答案

使用 native 组件的最简单的解决方案是使用 textbox 并添加 MouseEvents 来实现您自己的自定义控件。下面是一个示例,可让您沿垂直方向拖动 TextBox 的底部区域。当然,如果您想创建一个 pop-up,您应该实现更像是更改光标句柄和重新绘制某些区域的东西。

这是一个工作概念:

bool isDrag = false;
int lastY = 0;
private void textBox1_MouseEnter(object sender, EventArgs e)
{
//Change cursor to dragging handle or implement a pop-up
}

private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
//Just add 5px padding
if (e.Y >= (textBox1.ClientRectangle.Bottom - 5) &&
e.Y <= (textBox1.ClientRectangle.Bottom + 5))
{
isDrag = true;
lastY = e.Y;
}
}

private void textBox1_MouseMove(object sender, MouseEventArgs e)
{
if( isDrag)
{
textBox1.Height += (e.Y - lastY);
lastY = e.Y;
}
}

private void textBox1_MouseUp(object sender, MouseEventArgs e)
{
if (isDrag)
{
isDrag = false;
}
}

要尝试代码,请在新窗体上创建一个名为 textBox1TextBox 并连接所有 MouseEvents。尝试将鼠标放在 TextBox 的底部,然后拖动到顶部或底部。

并且不要忘记将 TextBox.Multiline 设置为 true

关于c# - Winforms 中可调整大小的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31845986/

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