c# - 建立和使用Scintilla.NET的问题

标签 c# winforms visual-studio-2010 .net-2.0

我正在使用/构建Scintilla.NET并将项目切换到.NET 2.0以解决兼容性问题。

它可以工作,但是当我单击新选项卡按钮时,出现错误消息:


  对象引用未设置为
  对象的实例。


此代码中出现问题:

ScintillaNet.Scintilla currentScin;
Stream Stream1;

public List <ScintillaNet.Scintilla> ScinList;

//Code for various events

private void New_Click(object sender, EventArgs e)
{
    TabPage tabp = new TabPage();
    ScintillaNet.Scintilla scin = new ScintillaNet.Scintilla();
    scin.Dock = DockStyle.Fill;

    scin.Margins[0].Width = 20;
    scin.ConfigurationManager.CustomLocation = "My Styles";
    scin.ConfigurationManager.Language = "lua";

    scin.Parent = tabp;

    // This line throws "Object reference not set to an instance of an object."
    ScinList.Add(scin);

    tabControl1.TabPages.Add(tabp);
}

最佳答案

问题是您尚未初始化ScinList。类的字段被初始化为其默认值,在这种情况下为null

您需要在某个地方对其进行初始化,无论是在声明它的地方...

public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();


...或在构造函数中...

public CLASSNAMEHERE()
{
    ScinList = new List<ScintillaNet.Scintilla>();
}


如果该行确实出现在您的代码中,请使用相应的代码编辑您的问题。

关于c# - 建立和使用Scintilla.NET的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601651/

相关文章:

c# - 如何在 ASP 中使用 JavaScript 禁用/启用带有按钮的 DropDownList

c# - 在一条语句中从 Xml 文档中选择多个值

c# - 使用 DataGridView 从另一种形式的 TextBox 中显示数据库信息

c# - TextBox 和 RichTextBox 在线程方面的区别

c# - 如何在 Windows 窗体中创建垂直导航栏?

visual-studio-2010 - 在项目模板中使用 IWizard 而不在 GAC 中安装程序集?

c# - Visual Studio 包和 VSIX 项目类型之间有什么区别?

c# - 用 C# 编写编译器,生成 C 与 IL?

c# - 在 Entity Framework 中动态选择数据库

c# - 上传到 FTP 后如何在文件上设置 DateTimeStamp?