var YAHOO = {'Shortcuts' : {}}; if (typeof YAHOO == "undefined") { var YAHOO = {}; } YAHOO.Shortcuts = YAHOO.Shortcuts || {}; YAHOO.Shortcuts.hasSensitiveText = false; YAHOO.Shortcuts.sensitivityType = []; YAHOO.Shortcuts.doUlt = false; YAHOO.Shortcuts.location = "us"; YAHOO.Shortcuts.document_id = 0; YAHOO.Shortcuts.document_type = ""; YAHOO.Shortcuts.document_title = "\u00d7\u0092\u00d7\u00a8\u00d7\u0099\u00d7\u0093"; YAHOO.Shortcuts.document_publish_date = ""; YAHOO.Shortcuts.document_author = "gilad.sefti@mailpoalim.co.il"; YAHOO.Shortcuts.document_url = ""; YAHOO.Shortcuts.document_tags = ""; YAHOO.Shortcuts.document_language = ""; YAHOO.Shortcuts.annotationSet = { "lw_1244631662_0": { "text": "System.IO", "extended": 0, "startchar": 973, "endchar": 981, "start": 973, "end": 981, "extendedFrom": "", "predictedCategory": "", "predictionProbability": "0", "weight": 1, "relScore": 0, "type": ["shortcuts:/us/place/virtual/web_site"], "category": ["IDENTIFIER"], "wikiId": "", "relatedWikiIds": [], "relatedEntities": [], "showOnClick": [], "context": "System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using Infragistics.Win.UltraWinGrid; using Infragistics.Win; namespace CheckRestore { public partial class Form1", "metaData": { "visible": "true" } } }; YAHOO.Shortcuts.headerID = "37507dfe6be42058ab7eeb8524771f76";
I get an exception when loading definitions.
"Object reference not set to an instace of an object."
It seems the problem is when applying condition definitions, Otherwise there is no problem.
I attach the sample.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using Infragistics.Win.UltraWinGrid; using Infragistics.Win; namespace CheckRestore { public partial class Form1 : Form { MemoryStream savedStream = new MemoryStream(); public Form1() { InitializeComponent(); } private void btnSaveDefs_Click(object sender, EventArgs e) { savedStream = new MemoryStream(); ultraGrid1.DisplayLayout.Save(savedStream, PropertyCategories.Bands); } private void btnLoadDefs_Click(object sender, EventArgs e) { savedStream.Seek(0, 0); ultraGrid1.DisplayLayout.Load(savedStream, PropertyCategories.Bands); } private void Form1_Load(object sender, EventArgs e) { List<Item> ls = new List<Item>(); ls.Add(new Item(0)); ls.Add(new Item(1)); ultraGrid1.DataSource = ls; } private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e) { UltraGridBand band = e.Layout.Bands[0]; Infragistics.Win.Appearance appearanceRed = new Infragistics.Win.Appearance(); appearanceRed.ForeColor = Color.Red; OperatorCondition conditionRed = new OperatorCondition(ConditionOperator.LessThanOrEqualTo, 0); ConditionValueAppearance valAppearanceAvailable = new ConditionValueAppearance(); valAppearanceAvailable.Add(conditionRed, appearanceRed); band.Columns["Num"].ValueBasedAppearance = valAppearanceAvailable; } } public class Item { public Item(int num) { mNum = num; } private int mNum; public int Num { get { return mNum; } set { mNum = value; } } } } namespace CheckRestore { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { Infragistics.Win.Appearance appearance4 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance2 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance3 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance12 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance7 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance6 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance5 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance9 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance11 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance10 = new Infragistics.Win.Appearance(); Infragistics.Win.Appearance appearance8 = new Infragistics.Win.Appearance(); this.ultraGrid1 = new Infragistics.Win.UltraWinGrid.UltraGrid(); this.btnSaveDefs = new System.Windows.Forms.Button(); this.btnLoadDefs = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.ultraGrid1)).BeginInit(); this.SuspendLayout(); // // ultraGrid1 // appearance4.BackColor = System.Drawing.SystemColors.Window; appearance4.BorderColor = System.Drawing.SystemColors.InactiveCaption; this.ultraGrid1.DisplayLayout.Appearance = appearance4; this.ultraGrid1.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid; this.ultraGrid1.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False; appearance1.BackColor = System.Drawing.SystemColors.ActiveBorder; appearance1.BackColor2 = System.Drawing.SystemColors.ControlDark; appearance1.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; appearance1.BorderColor = System.Drawing.SystemColors.Window; this.ultraGrid1.DisplayLayout.GroupByBox.Appearance = appearance1; appearance2.ForeColor = System.Drawing.SystemColors.GrayText; this.ultraGrid1.DisplayLayout.GroupByBox.BandLabelAppearance = appearance2; this.ultraGrid1.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid; appearance3.BackColor = System.Drawing.SystemColors.ControlLightLight; appearance3.BackColor2 = System.Drawing.SystemColors.Control; appearance3.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal; appearance3.ForeColor = System.Drawing.SystemColors.GrayText; this.ultraGrid1.DisplayLayout.GroupByBox.PromptAppearance = appearance3; this.ultraGrid1.DisplayLayout.MaxColScrollRegions = 1; this.ultraGrid1.DisplayLayout.MaxRowScrollRegions = 1; appearance12.BackColor = System.Drawing.SystemColors.Window; appearance12.ForeColor = System.Drawing.SystemColors.ControlText; this.ultraGrid1.DisplayLayout.Override.ActiveCellAppearance = appearance12; appearance7.BackColor = System.Drawing.SystemColors.Highlight; appearance7.ForeColor = System.Drawing.SystemColors.HighlightText; this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance = appearance7; this.ultraGrid1.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.Dotted; this.ultraGrid1.DisplayLayout.Override.BorderStyleRow = Infragistics.Win.UIElementBorderStyle.Dotted; appearance6.BackColor = System.Drawing.SystemColors.Window; this.ultraGrid1.DisplayLayout.Override.CardAreaAppearance = appearance6; appearance5.BorderColor = System.Drawing.Color.Silver; appearance5.TextTrimming = Infragistics.Win.TextTrimming.EllipsisCharacter; this.ultraGrid1.DisplayLayout.Override.CellAppearance = appearance5; this.ultraGrid1.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText; this.ultraGrid1.DisplayLayout.Override.CellPadding = 0; appearance9.BackColor = System.Drawing.SystemColors.Control; appearance9.BackColor2 = System.Drawing.SystemColors.ControlDark; appearance9.BackGradientAlignment = Infragistics.Win.GradientAlignment.Element; appearance9.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal; appearance9.BorderColor = System.Drawing.SystemColors.Window; this.ultraGrid1.DisplayLayout.Override.GroupByRowAppearance = appearance9; appearance11.TextHAlignAsString = "Left"; this.ultraGrid1.DisplayLayout.Override.HeaderAppearance = appearance11; this.ultraGrid1.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti; this.ultraGrid1.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand; appearance10.BackColor = System.Drawing.SystemColors.Window; appearance10.BorderColor = System.Drawing.Color.Silver; this.ultraGrid1.DisplayLayout.Override.RowAppearance = appearance10; this.ultraGrid1.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False; appearance8.BackColor = System.Drawing.SystemColors.ControlLight; this.ultraGrid1.DisplayLayout.Override.TemplateAddRowAppearance = appearance8; this.ultraGrid1.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill; this.ultraGrid1.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate; this.ultraGrid1.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy; this.ultraGrid1.Location = new System.Drawing.Point(28, 73); this.ultraGrid1.Name = "ultraGrid1"; this.ultraGrid1.Size = new System.Drawing.Size(606, 232); this.ultraGrid1.TabIndex = 0; this.ultraGrid1.Text = "ultraGrid1"; this.ultraGrid1.InitializeLayout += new Infragistics.Win.UltraWinGrid.InitializeLayoutEventHandler(this.ultraGrid1_InitializeLayout); // // btnSaveDefs // this.btnSaveDefs.Location = new System.Drawing.Point(44, 30); this.btnSaveDefs.Name = "btnSaveDefs"; this.btnSaveDefs.Size = new System.Drawing.Size(97, 23); this.btnSaveDefs.TabIndex = 1; this.btnSaveDefs.Text = "Save definitions"; this.btnSaveDefs.UseVisualStyleBackColor = true; this.btnSaveDefs.Click += new System.EventHandler(this.btnSaveDefs_Click); // // btnLoadDefs // this.btnLoadDefs.Location = new System.Drawing.Point(236, 30); this.btnLoadDefs.Name = "btnLoadDefs"; this.btnLoadDefs.Size = new System.Drawing.Size(97, 23); this.btnLoadDefs.TabIndex = 2; this.btnLoadDefs.Text = "Load definitions"; this.btnLoadDefs.UseVisualStyleBackColor = true; this.btnLoadDefs.Click += new System.EventHandler(this.btnLoadDefs_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(672, 317); this.Controls.Add(this.btnLoadDefs); this.Controls.Add(this.btnSaveDefs); this.Controls.Add(this.ultraGrid1); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.ultraGrid1)).EndInit(); this.ResumeLayout(false); } #endregion private Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid1; private System.Windows.Forms.Button btnSaveDefs; private System.Windows.Forms.Button btnLoadDefs; } }
I'm afraid I don't understand your question. What line of code are you getting an exception on?
A Nullreference Exception indicates that the code is trying to reference a property on an object variable which is null.
you get exception if you press save definition, and then load definitions.
The exception is on the line:
ultraGrid1.DisplayLayout.Load(savedStream, PropertyCategories.Bands);
But ultraGrid1 and savedStream are not null.
This happens only if I use the condition.
If I remove the lines of the condition, there is no exception.
Hi,
What condition are you referring to? I don't see any conditional statements anywhere around this code.
What does the call stack show when you get the exception?
I refer to OperationCondition
I refer the the lines:
Infragistics.Win.Appearance appearanceRed = new Infragistics.Win.Appearance(); appearanceRed.ForeColor = Color.Red; OperatorCondition conditionRed = new OperatorCondition(ConditionOperator.LessThanOrEqualTo, 0); ConditionValueAppearance valAppearanceAvailable = new ConditionValueAppearance(); valAppearanceAvailable.Add(conditionRed, appearanceRed); band.Columns["Num"].ValueBasedAppearance = valAppearanceAvailable;
Call stack:
> CheckRestore.exe!CheckRestore.Form1.btnLoadDefs_Click(object sender = {Text = "Load definitions"}, System.EventArgs e = {X = 48 Y = 14 Button = Left}) Line 32 C# [External Code] CheckRestore.exe!CheckRestore.Program.Main() Line 17 + 0x1a bytes C# [External Code]
Also the exception I get is:
"Exception has been thrown by the target of invocation."
and the inner exception is : "Object reference not set to an instance of an object"
But anyway, I put the code both for the form code, and design, so you can check it yourself.
Well, it's very difficult to tell what's going on here just from looking at the code.
What version of the controls are you using? If you do not already have it, I recommend getting the latest service release and see if that helps.
If it does not, can you post a small sample project demonstrating the error?
Okay, I ran your sample and pressed the "Save Definitions" button, and then the "Load Definitions" button. And it seems to work fine for me. I did not get any exceptions.
So perhaps I am using a newer version of the controls that you are. I tested this with the latest service release of NetAdvantage 2008 Volume 1. You can download the service release from the Infragistics web site.
O.K.
I attach sample
I don't like to paste code from a forum post into a sample. This is not a good test, because there's no indication of what version of Visual Studio you are using or what versions of the controls or what controls are even referenced by your project.
Please post a small sample project that demonstrates the problem and I will be happy to take a look.
I use version 8.1.20081.1000
I cannot get an update right now.
I did post a sample.
In my first post, there are both the form code and design so you just have to copy it, to make the sample.