在售的教程,有兴趣小伙伴,可以点击链接查看详情,或加我微信,进行购买哦~

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

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

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

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

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

= ();

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

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

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

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

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

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

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

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

import clrclr.AddReference('System.Windows.Forms')clr.AddReference('System.Drawing')
from System.Drawing import Pointfrom System.Windows.Forms import Application, Button, Form, Label, TextBox
class 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)

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

点击“点这里”后,变成你输入的内容:

多行文本框

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

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

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

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

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

. 属性上有一个注释textbox滚动条,上面写着:

如果 属性设置为 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.MaxLength = 20textbox.UseSystemPasswordChar = True

这需要使用属性r 和 。

有趣的属性

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

有趣的方法

文本框还具有以下方法。上述属性和这些方法的组合意味着您可以使用多行 实现文本编辑器的所有基本功能。

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

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

九哥出品,必属精品

有希望入群或者购买教程的小伙伴,可以扫码加我微信,备注来源,我来拉你入群哦~


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注