我正在使用/构建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/