为了解决兼容性问题,我正在使用/构建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);
}发布于 2011-04-08 23:14:18
问题是您还没有初始化ScinList。类的字段被初始化为其默认值,在本例中为null。
你需要在某个地方初始化它,或者声明它的地方.
public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();..。或者在构造函数中..。
public CLASSNAMEHERE()
{
ScinList = new List<ScintillaNet.Scintilla>();
}如果这一行确实出现在您的代码中,请使用这样做的代码编辑您的问题。
发布于 2011-04-08 23:13:16
问题是您没有初始化ScinList。
改变这一点:
public List<ScintillaNet.Scintilla> ScinList;对此:
public List<ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();发布于 2011-04-08 23:14:16
看起来您定义了公共字段ScinList:
public List <ScintillaNet.Scintilla> ScinList;但是,您从未真正创建一个新列表并将其分配给您的字段:
public List <ScintillaNet.Scintilla> ScinList = new List<ScintillaNet.Scintilla>();https://stackoverflow.com/questions/5601651
复制相似问题