【发布时间】:2015-11-24 18:10:19
【问题描述】:
我正在关注 this 关于 winforms 的教程,到目前为止,该教程是在不使用工具箱的情况下对表单进行编码。我相信它很快就会更深入地介绍工具箱。
按照教程,我在以下两段代码中制作了一个部分类:
第一个文件:
using System;
using System.Windows.Forms;
public class Numeric : System.Windows.Forms.TextBox
{
public Numeric()
{
}
}
public partial class Exercise
{
private Numeric txtbox;
System.ComponentModel.Container components;
}
第二个文件:
using System;
using System.Windows.Forms;
public partial class Exercise : Form
{
private void InitializeComponent()
{
txtbox = new Numeric();
Controls.Add(txtbox);
}
public Exercise()
{
InitializeComponent();
}
}
public class program
{
public static int Main()
{
Application.Run(new Exercise());
return 0;
}
}
当我用 F5 运行代码时,一切看起来都很好:表单弹出了文本框。
但由于某种原因,当我右键单击第二个文件并选择“视图设计器”时,我收到一条错误消息,提示“变量 'txtbox' 要么未声明,要么从未分配”。我可以选择“忽略并继续”,这会将我带到一个没有文本框的表单。
为什么会发生这种情况?我知道你们中的一些人认为我应该只使用工具箱,这可能是最明智的做法,但我仍然想了解为什么会发生这种情况。
【问题讨论】:
-
您必须声明 txtbox 的类型。它在哪里?你不能指望设计师展示 InitializeComponent() 中发生的任何事情
-
您是否使用了一些第三方控件?如果是,那么它会导致您面临这样的问题。
-
@Yogee 我在第一个文件中声明了txtbox的类型,我想既然类是部分的,它可以找到类型就好了。
-
@Lali 好的,但我只使用标准控件。
标签: c# .net winforms visual-studio windows-forms-designer