症状
在设置 Anchor 属性后,在将 TextBox 控件的 Multiline 属性设置为 True 时, TextBox 可能没有调整到在 TextBox 的 Size 属性中指定的尺寸。但是, TextBox 允许输入多行文本。替代方法
要纠正此错误,请使用下列方法之一:- 在设置 Multiline 属性后,设置 Anchor 属性(如以下代码中所示):
Visual Basic .NET 代码'Setting Multiline property txtBox.Multiline = True ' Setting Anchor property txtBox.Anchor = AnchorStyles.Top Or AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right
Visual C# .NET 代码// Setting Multiline property txtBox.Multiline = true; // Setting Anchor property txtBox.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
- 在设置 Multiline 属性后,设置“TextBox”的 Size 属性(如以下代码中所示):
Visual Basic .NET 代码' Setting Anchor Property txtBox.Anchor = AnchorStyles.Top Or AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right ' Setting Multiline Property txtBox.Multiline = true ' Setting the size of the TextBox txtBox.Size = new System.Drawing.Size(100, 100)
Visual C# .NET 代码// Setting Anchor Property txtBox.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; // Setting Multiline Property txtBox.Multiline = true; // Setting the size of the TextBox txtBox.Size = new System.Drawing.Size(100, 100);
状态
Microsoft 已经确认这是本文开头列出的 Microsoft 产品中的漏洞。更多信息
重现问题的步骤
- 启动 Microsoft Visual Studio .NET (2003)。
- 在“文件”菜单上,指向“新建”,然后单击“项目”。
- 在“项目类型”中,单击选中“Visual C# .NET”项目或“Visual Basic .NET”项目。
- 在“模板”中,单击选中“Windows 应用程序”。
- 将该项目命名为 MultiLineApplication,然后单击“确定”。
- 将现有代码替换为以下代码:
Visual Basic .NET 代码Option Strict On Imports System.Windows.Forms Imports System.Drawing Imports System Class MultilineTextBoxForm : Inherits Form ' Constructor Sub New() Dim txtBox As TextBox = New System.Windows.Forms.TextBox txtBox.Visible = True txtBox.Location = New System.Drawing.Point(8, 8) txtBox.Size = New System.Drawing.Size(100, 100) txtBox.Name = "MultiLineTextBox" ' With this order the TextBox may be resized txtBox.Anchor = AnchorStyles.Top Or AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right txtBox.Multiline = True ClientSize = New System.Drawing.Size(176, 176) Controls.Add(txtBox) End Sub Shared Sub Main() Application.Run(New MultilineTextBoxForm) End Sub End Class
Visual C# .NET 代码using System.Windows.Forms; using System.Drawing; using System; namespace MultilineApplication { public class MultilineTextBoxForm : Form { // Constructor public MultilineTextBoxForm() { TextBox txtBox = new System.Windows.Forms.TextBox(); txtBox.Visible = true; txtBox.Location = new System.Drawing.Point(8, 8); txtBox.Size = new System.Drawing.Size(100, 100); txtBox.Name = "txt"; // With this order the TextBox may be resized; txtBox.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; txtBox.Multiline = true; ClientSize = new System.Drawing.Size(176, 176); Controls.Add(txtBox); } // Main method static void Main(String[] args) { Application.Run(new MultilineTextBoxForm()); } } }
- 在“调试”菜单上,单击“启动”。
此时,就会出现本文“症状”一节中讨论的问题。
这篇文章中的信息适用于:
- Microsoft Visual Studio .NET (2003), Enterprise Developer Edition
- Microsoft Visual Studio .NET (2003), Enterprise Architect Edition
- Microsoft Visual Studio .NET (2003), Professional Edition
- Microsoft Visual Studio .NET (2003), Academic Edition
- Microsoft Visual Studio .NET (2003), Trial Edition
最近更新: | 2003-10-24 (1.2) |
关键字: | KbUIDesign kbWindowsForms kblayout kbForms kbProperties kbBug KB814344 kbAudDeveloper |