摘要
TextBox:控件,又称为文本框控件,它主要用于获取用户输入的数据或者显示文本,它通常用于可编辑文本,也可以使其成为只读控件。
通过控件 TextBox ,用户可以在应用程序中输入文本。 此控件具有在标准Windows文本框控件中找不到的其他功能,包括多行编辑和密码字符掩码。
正文
通常,控件 TextBox 用于显示或接受作为输入的单行文本。 可以使用 Multiline 和 ScrollBars 属性来启用显示或输入多行文本。
属性
AllowDrop | 获取或设置一个值,该值指示控件是否可以接受用户拖放到它上面的数据。 (继承自 Control) |
Anchor | 获取或设置控件绑定到的容器的边缘并确定控件如何随其父级一起调整大小。 (继承自 Control) |
AutoCompleteCustomSource | 获取或设置一个自定义 StringCollection,以便在 AutoCompleteSource 属性被设置为 CustomSource 时使用。 |
AutoCompleteMode | 获取或设置一个选项,该选项控制自动完成应用于 TextBox 的方式。 |
AutoCompleteSource | 获取或设置一个值,该值指定用于自动完成的完整字符串的源。 |
BackColor | 获取或设置控件的背景色。 (继承自 TextBoxBase) |
Dock | 获取或设置哪些控件边框停靠到其父控件并确定控件如何随其父级一起调整大小。 (继承自 Control) |
Enabled | 获取或设置一个值,该值指示控件是否可以对用户交互作出响应。 (继承自 Control) |
Height | 获取或设置控件的高度。 (继承自 Control) |
Left | 获取或设置控件左边缘与其容器的工作区左边缘之间的距离(以像素为单位)。 (继承自 Control) |
Lines | 获取或设置文本框控件中的文本行。 (继承自 TextBoxBase) |
Location | 获取或设置该控件的左上角相对于其容器的左上角的坐标。 (继承自 Control) |
Margin | 获取或设置控件之间的空间。 (继承自 Control) |
MaximumSize | 获取或设置大小,该大小是 GetPreferredSize(Size) 可以指定的上限。 (继承自 Control) |
MaxLength | 获取或设置用户可在文本框控件中键入或粘贴的最大字符数。 (继承自 TextBoxBase) |
MinimumSize | 获取或设置大小,该大小是 GetPreferredSize(Size) 可以指定的下限。 (继承自 Control) |
Multiline | 获取或设置一个值,该值指示这是否为多行 TextBox 控件。 |
Name | 获取或设置控件的名称。 (继承自 Control) |
Padding | 此属性与此类无关。 (继承自 TextBoxBase) |
PasswordChar | 获取或设置字符,该字符用于屏蔽单行 TextBox 控件中的密码字符。 |
PlaceholderText | 获取或设置当控件没有文本且不具有焦点时要显示的文本。 |
ReadOnly | 获取或设置一个值,该值指示文本框中的文本是否为只读。 (继承自 TextBoxBase) |
RecreatingHandle | 获取一个值,该值指示控件当前是否在重新创建其句柄。 (继承自 Control) |
ScrollBars | 获取或设置哪些滚动条应出现在多行 TextBox 控件中。 |
SelectedText | 获取或设置一个值,该值指示控件中当前选定的文本。 (继承自 TextBoxBase) |
SelectionLength | 获取或设置文本框中选定的字符数。 (继承自 TextBoxBase) |
SelectionStart | 获取或设置文本框中选定的文本起始点。 (继承自 TextBoxBase) |
ShortcutsEnabled | 获取或设置一个值,该值指示是否启用已定义的快捷方式。 (继承自 TextBoxBase) |
Tag | 获取或设置包含有关控件的数据的对象。 (继承自 Control) |
Text | 获取或设置与此控件关联的文本。 |
TextAlign | 获取或设置 TextBox 控件中文本的对齐方式。 |
TextLength | 获取控件中文本的长度。 (继承自 TextBoxBase) |
Top | 获取或设置控件上边缘与其容器的工作区上边缘之间的距离(以像素为单位)。 (继承自 Control) |
UseSystemPasswordChar | 获取或设置一个值,该值指示 TextBox 控件中的文本是否作为默认密码字符显示。 |
Visible | 获取或设置一个值,该值指示是否显示该控件及其所有子控件。 (继承自 Control) |
Width | 获取或设置控件的宽度。 (继承自 Control) |
WordWrap | 指示多行文本框控件在必要时是否自动换行到下一行的开始。 (继承自 TextBoxBase) |
事件
Click | 在单击文本框时发生。 (继承自 TextBoxBase) |
DoubleClick | 在双击控件时发生。 (继承自 Control) |
DragDrop | 拖放操作完成时发生。 (继承自 Control) |
DragEnter | 在将对象拖入控件的边界时发生。 (继承自 Control) |
DragLeave | 将对象拖出控件的边界时发生。 (继承自 Control) |
DragOver | 在将对象拖到控件的边界上发生。 (继承自 Control) |
Enter | 进入控件时发生。 (继承自 Control) |
GotFocus | 在控件接收焦点时发生。 (继承自 Control) |
Invalidated | 控件的显示要求重新绘制时发生。 (继承自 Control) |
KeyDown | 在控件有焦点的情况下按下键时发生。 (继承自 Control) |
KeyPress | 在控件有焦点的情况下 字符、空格或退格键时发生。 (继承自 Control) |
KeyUp | 在控件有焦点的情况下释放键时发生。 (继承自 Control) |
Layout | 在控件应重新定位其子控件时发生。 (继承自 Control) |
Leave | 在输入焦点离开控件时发生。 (继承自 Control) |
LostFocus | 在控件失去焦点时发生。 (继承自 Control) |
MouseClick | 用鼠标单击控件时发生。 (继承自 TextBoxBase) |
MouseDoubleClick | 用鼠标双击控件时发生。 (继承自 Control) |
MouseDown | 当鼠标指针位于控件上并按下鼠标键时发生。 (继承自 Control) |
MouseEnter | 在鼠标指针进入控件时发生。 (继承自 Control) |
MouseHover | 在鼠标指针停放在控件上时发生。 (继承自 Control) |
MouseLeave | 在鼠标指针离开控件时发生。 (继承自 Control) |
MouseMove | 在鼠标指针移到控件上时发生。 (继承自 Control) |
MouseUp | 在鼠标指针在控件上并释放鼠标键时发生。 (继承自 Control) |
MouseWheel | 在控件有焦点且鼠标轮移动时发生。 (继承自 Control) |
Move | 在移动控件时发生。 (继承自 Control) |
PreviewKeyDown | 在焦点位于此控件上的情况下,当有按键动作时发生(在 KeyDown 事件之前发生)。 (继承自 Control) |
Resize | 在调整控件大小时发生。 (继承自 Control) |
TextChanged | 在 Text 属性值更改时发生。 (继承自 Control) |
image.png
通过Label与TextBox控件布局登录界面
其中密码需要设置PasswordChar 属性,这里我输入的是字符“*”
image.png
private void btnClose_Click(object sender, EventArgs e)
{
MessageBox.Show("退出");
}
private void btnConfirm_Click(object sender, EventArgs e)
{
string name = txtName.Text;
string password = txtPassword.Text;
MessageBox.Show($"姓名:{name},密码:{password}");
}
文本框多行设置
Multiline设置为true,ScrollBars,设置众向滚动条Vertical
image.png
我们可以用TextBox模拟Label,这个有个好处,就是换行问题可以简单解决
image.png
修改TextBox 的BackColor为Control,BorderStyle为none,再将ReadOnly改为True
这个我们修改为多行TextBox,看上去是不是与Label一样。
image.png
试一下TextChanged事件
image.png
代码
private void txtMsg_TextChanged(object sender, EventArgs e)
{
label1.Text = txtMsg.Text;
}