textbox换行的方法是多少(textbox文本框控件)

Dynamo案例百解累积更新(2021.04)介绍~

Dynamo PythonScript 代码速查手册By九哥

你好,这里是BIM的乐趣,我是九哥~

前几天整理了几篇群里常见的问题,今天我们回到之前的系列教程,继续讲解WindowsForm。通过前面三篇介绍WindowsForm文章,我们知道了如何创建UI和使用按钮小部件,并且知道了如何设置窗口颜色。

在本篇文章中,我们将演示文本框。文本框允许你接收来自用户的文本输入。它对于单行文本最有用。对于多行文本,你可能想要使用RichTextBox。

这是一个非常容易使用的小部件,所以这篇文章将很短。

开始使用 TextBox 与到目前为止我们使用的其他小部件没有什么不同。MSDN文档提供了以下示例:

TextBox textBox1 = newTextBox();

同样,在调用 TextBox 构造函数时,没有参数。像我们使用的其他小部件一样,我们可以获取或设置Text属性来访问 TextBox 的内容。一切简单易懂。事实上,它并没有真正变得更加复杂,但如果我们停在这里,仍然会缺少一些东西。在普通 Windows 应用程序中,当你在文本框中按 Enter 时,应用程序将执行操作。

Windows Form应用程序有两个特殊键——是 Enter和 Esc。输入(或返回)与”接受”操作相同,而 Esc(退出)与”取消”操作相同。我们可以将这两个操作绑定到按钮。

让我们的示例有两个按钮。

第一个按钮将从文本框中显示文本,并在标签中显示。这可能是确定按钮。

第二个按钮将重置文本框,这可能是取消按钮。

为此,我们需要在Form上设置确定按钮和取消按钮属性。

确定和取消操作属于Form,因此,如果你想要对不同的小部件使用不同的操作,你必须在事件到达Form之前捕获(并处理)。当我们在另一个条目中访问事件时, 我们将介绍所有这些。

我们简单示例的完整代码如下所示:

import clrclr.AddReference(‘System.Windows.Forms’)clr.AddReference(‘System.Drawing’)from System.Drawing import Pointfrom System.Windows.Forms import Application, Button, Form, Label, TextBoxclass SimpleTextBoxForm(Form): def __init__(self): self.Text = “简单的文本框例子” self.Width = 300 self.Height = 200 self.label = Label() self.label.Text = “没有输入内容” self.label.Location = Point(25, 25) self.label.Height = 25 self.label.Width = 250 self.textbox = TextBox() self.textbox.Text = “默认文本” self.textbox.Location = Point(25, 75) self.textbox.Width = 150 self.button1 = Button() self.button1.Text = ‘点这里’ self.button1.Location = Point(25, 125) self.button1.Click = self.update self.button2 = Button() self.button2.Text = ‘重置’ self.button2.Location = Point(125, 125) self.button2.Click = self.reset self.AcceptButton = self.button1 self.CancelButton = self.button2 self.Controls.Add(self.label) self.Controls.Add(self.textbox) self.Controls.Add(self.button1) self.Controls.Add(self.button2) def update(self, sender, event): self.label.Text = self.textbox.Text def reset(self, sender, event): self.label.Text = “没有输入内容” self.textbox.Text = “默认文本”form = SimpleTextBoxForm()Application.Run(form)

当你运行此程序时,你将看到 :

textbox换行的方法是多少(textbox文本框控件)

多行文本框

TextBox有几个属性会影响其行为和外观。幸运的是,微软为我们提供了一个有用的例子,告诉你如何使用其中一些:

// 将Multiline属性设置为true.textBox1.Multiline = true;// 向文本框控件添加垂直滚动条.textBox1.ScrollBars = ScrollBars.Vertical;// 允许在文本框控件中输入返回键.textBox1.AcceptsReturn = true;// 允许在文本框控件中输入TAB键.textBox1.AcceptsTab = true;// 设置WordWrap为True允许文本自动换行到下一行.textBox1.WordWrap = true;// 设置控件的默认文本.textBox1.Text = “Welcome!”;

大部分工作都很简单。如果我们将此示例直接转换为 Python,我们将获得一个带垂直滚动条的多行文本框。它允许返回键和 TAB 键输入到文本框中,而无需触发接受按钮或移动到下一个小部件。它甚至将启用WordWrap。

你可以浏览TextBox Member文档,以查看所有这些属性是什么以及它们做什么。

上面示例中的新内容是滚动条。Textbox.ScrollBars属性接受一个System.Windows.Forms.ScrollBars枚举值,用于设置文本框中哪些滚动条处于活动状态。可能的值(枚举的成员)为 :

Both:将显示水平和垂直滚动条。将显示水平和垂直滚动条。

Horizontal:仅显示水平滚动条。仅显示水平滚动条。

None:不显示滚动条。无不显示滚动条。

Vertical:仅显示垂直滚动条。垂直仅显示垂直滚动条。

Textbox. scrollbars 属性上有一个注释,上面写着:

如果 WordWrap 属性设置为 true,则无论滚动条属性的值如何,都不会显示水平滚动条。

需要知道↑

我们来创建第二个示例。

import clrclr.AddReference(‘System.Windows.Forms’)clr.AddReference(‘System.Drawing’)from System.Drawing import Pointfrom System.Windows.Forms import (Application, Button, Form, ScrollBars, TextBox)class MultilineTextBoxForm(Form): def __init__(self): self.Text = “多行文本框” self.Width = 250 self.Height = 200 self.setupTextBox() def update(sender, event): print self.textbox.Text self.button1 = Button() self.button1.Text = ‘点这里’ self.button1.Location = Point(20, 125) self.button1.Click = update self.button2 = Button() self.button2.Text = ‘重置’ self.button2.Location = Point(125, 125) self.button2.Click = self.reset self.AcceptButton = self.button1 self.CancelButton = self.button2 self.Controls.Add(self.textbox) self.Controls.Add(self.button1) self.Controls.Add(self.button2) def setupTextBox(self): textbox = TextBox() textbox.Text = “默认文本” textbox.Location = Point(30, 25) textbox.Width = 180 textbox.Height = 60 textbox.Multiline = True textbox.ScrollBars = ScrollBars.Vertical textbox.AcceptsTab = True textbox.AcceptsReturn = True textbox.WordWrap = True self.textbox = textbox def reset(self, sender, event): self.textbox.Text = “默认文本”form = MultilineTextBoxForm()Application.Run(form)

运行时,它这样显示:

除此之外还有很多

在本文的开始,我愚蠢地宣称,TextBox是一个很好的简单小部件。嗯, 它有点, 正如你所看到的, 使用它并不是什么复杂的事。

尽管如此,它还是有各种有趣的属性和方法,在实际应用程序中可能很有用。我太累了,不能告诉你他们是如何工作的, 所以我就列出他们。我会告诉你一些代码,创建一个密码输入框。这将显示星号而不是键入的文本,我们还将给它一个最大长度:

textbox = TextBox()textbox.MaxLength = 20textbox.UseSystemPasswordChar = True

这需要使用属性UseSystemPasswordChar 和 MaxLength。

有趣的属性

TextBox 类的以下公共属性可能有用:

SelectedText—— 获取或设置文本框中的选定文本

SelectionLength——获取或设置文本框中选择的字符数

SelectionStart——获取或设置文本框中所选文本的起点

Modified——获取或设置一个值,指示自创建控件或上次设置控件内容以来,用户已修改文本框控件

TextAlign——获取或设置文本在文本框控件中的对齐方式(使用水平对齐枚举 )

有趣的方法

要使用这些方法,你需要阅读文档以查看它们采用的参数(如果有),以及它们是否返回值。不过, 它们通常很简单。

AppendText附加文本——将文本附加到文本框的当前文本

Copy复制——将文本框中的当前选择复制到剪贴板

Cut剪切——将文本框中的当前选择移动到剪贴板

DeslectAll——指定”选择”属性的值为零,因此在控件中未选择任何字符

Paste粘贴——将文本框中的当前选择替换为剪贴板的内容。

SelectAll选择全部——选择文本框中的所有文本

ScrollToCaret——将控件的内容滚动到当前文本位置

好了,今天的分享就到这里,小伙伴们快去自己尝试吧~

九哥出品,必属精品

发表评论

登录后才能评论