在售的教程,有兴趣小伙伴,可以点击链接查看详情,或加我微信,进行购买哦~
你好,这里是BIM的乐趣,我是九哥~
前几天整理了几篇群里常见的问题,今天我们回到之前的系列教程,继续讲解。通过前面三篇介绍文章,我们知道了如何创建UI和使用按钮小部件,并且知道了如何设置窗口颜色。
在本篇文章中,我们将演示文本框。文本框允许你接收来自用户的文本输入。它对于单行文本最有用。对于多行文本,你可能想要使用。
这是一个非常容易使用的小部件,所以这篇文章将很短。
开始使用 与到目前为止我们使用的其他小部件没有什么不同。MSDN文档提供了以下示例:
= ();
同样,在调用 构造函数时,没有参数。像我们使用的其他小部件一样,我们可以获取或设置Text属性来访问 的内容。一切简单易懂。事实上,它并没有真正变得更加复杂,但如果我们停在这里,仍然会缺少一些东西。在普通 应用程序中,当你在文本框中按 Enter 时,应用程序将执行操作。
Form应用程序有两个特殊键——是 Enter和 Esc。输入(或返回)与"接受"操作相同,而 Esc(退出)与"取消"操作相同。我们可以将这两个操作绑定到按钮。
让我们的示例有两个按钮。
第一个按钮将从文本框中显示文本,并在标签中显示。这可能是确定按钮。
第二个按钮将重置文本框,这可能是取消按钮。
为此,我们需要在Form上设置确定按钮和取消按钮属性。
确定和取消操作属于Form,因此,如果你想要对不同的小部件使用不同的操作textbox滚动条,你必须在事件到达Form之前捕获(并处理)。当我们在另一个条目中访问事件时, 我们将介绍所有这些。
我们简单示例的完整代码如下所示:
import clr
clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Drawing')
from System.Drawing import Point
from 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 clr
clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Drawing')
from System.Drawing import Point
from 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 = 20
textbox.UseSystemPasswordChar = True
这需要使用属性r 和 。
有趣的属性
类的以下公共属性可能有用:
有趣的方法
文本框还具有以下方法。上述属性和这些方法的组合意味着您可以使用多行 实现文本编辑器的所有基本功能。
要使用这些方法,你需要阅读文档以查看它们采用的参数(如果有),以及它们是否返回值。不过, 它们通常很简单。
好了,今天的分享就到这里,小伙伴们快去自己尝试吧~
九哥出品,必属精品
有希望入群或者购买教程的小伙伴,可以扫码加我微信,备注来源,我来拉你入群哦~
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh