I have a menu item in a large program that opens a new window. Nothing gets passed into it, it loads a calendar, 3 empty text boxes, 3 labels, 2 buttons and an empty Crystal Report Viewer.
When its running the user clicks on the calendar and this automatically inserts the first and last dates of the selected month into 2 of the text boxes. One button loads a CR report with data from a DB, the other button prints the report.
This works fine on my system but the Initialize Component throws a null reference exception when deployed on a colleagues system. I cannot recreate the exception on my system.
Has anyone any ideas on where I should even start?
Updated
ERROR
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Windows.Baml2006.Baml2006Reader.Process_PropertyWithConverter()
at System.Windows.Baml2006.Baml2006Reader.Process_OneBamlRecord()
at System.Windows.Baml2006.Baml2006Reader.Process_BamlRecords()
at System.Windows.Baml2006.Baml2006Reader.Read()
at System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, XamlContextStack`1 stack, IStyleConnector styleConnector)
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at KeyInScreen.RebatesReports.InitializeComponent()
at KeyInScreen.RebatesReports..ctor()
at KeyInScreen.Menu.FertiliserRebate_Click(Object sender, RoutedEventArgs e)
XAML Code
<Window x:Class="KeyInScreen.RebatesReports"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Fertiliser Rebates" WindowState="Maximized"
xmlns:my="clr-namespace:SAPBusinessObjects.WPF.Viewer;assembly=SAPBusinessObjects.WPF.Viewer"
mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="700"
Width="1350">
<Window.Resources>
<Style TargetType="{x:Type Label}">
<Setter Property="FontSize" Value="14" />
</Style>
<Style TargetType="{x:Type Button}">
<Setter Property="FontSize" Value="14"/>
</Style>
<Style TargetType="{x:Type Calendar}">
<Setter Property="FontSize" Value="14"/>
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="FontSize" Value="14"/>
</Style>
</Window.Resources>
<Grid Background="#FFEFEDDF">
<Grid.RowDefinitions>
<RowDefinition Height=".5*"/>
<RowDefinition Height=".5*"/>
<RowDefinition Height="4*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="5*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".2*"/>
<ColumnDefinition Width=".7*"/>
<ColumnDefinition Width=".7*"/>
<ColumnDefinition Width=".7*"/>
<ColumnDefinition Width=".5*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width=".1*"/>
</Grid.ColumnDefinitions>
<Calendar x:Name="cDatePicker" Grid.Column="1" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" SelectedDatesChanged="cDatePicker_SelectedDatesChanged" />
<Label Content="Start Date:" Grid.Column="1" Grid.Row="4" Margin="5"/>
<TextBox x:Name="txtStartDate" Grid.Column="2" Grid.Row="4" Margin="5" VerticalContentAlignment="Center" />
<Label Content="End Date:" Grid.Column="1" Grid.Row="5" Margin="5"/>
<TextBox x:Name="txtEndDate" Grid.Column="2" Grid.Row="5" Margin="5" VerticalContentAlignment="Center"/>
<Label Content="Supplier Number:" Grid.Column="1" Grid.Row="6" Margin="5"/>
<TextBox x:Name="txtCustomerNumber" Grid.Column="2" Grid.Row="6" Margin="5" VerticalContentAlignment="Center" TabIndex="1" />
<Button x:Name="btnShowRport" Content="View Report" Grid.Column="1" Grid.Row="8" Margin="0,0,10,0" Click="btnShowRport_Click" IsDefault="True" />
<Button x:Name="btnPrintReport" Content=" Print Report" Grid.Column="2" Grid.Row="8" Margin="10,0,0,0" Click="btnPrintReport_Click" />
<my:CrystalReportsViewer x:Name="crReportViewer" Grid.Column="3" Grid.RowSpan="10" HorizontalAlignment="Center" VerticalAlignment="Center"
Height="656" Width="845" Margin="94,-7,62,12" ToggleSidePanel="None" Panel.ZIndex="0" Grid.ColumnSpan="3"
ShowPrintButton="False" ShowRefreshButton="False" ShowSearchTextButton="False" ShowToggleSidePanelButton="True"
ShowToolbar="True" ShowNextPageButton="True" ShowGoToPageButton="True" ShowExportButton="False"
ShowCopyButton="False" SnapsToDevicePixels="True" ShowLogo="False" ShowPrevPageButton="True"
ShowStatusbar="True" />
</Grid>
Thanks
The attempt to initialize its values therefore thrown a NullReferenceException exception. You can eliminate the exception by declaring the number of elements in the array before initializing it, as the following example does.
This error is caused when an object is trying to be used by a script but does not refer to an instance of an object. To fix this example we can acquire a reference to an instance of the script using GameObject.
The best way to avoid the "NullReferenceException: Object reference not set to an instance of an object” error is to check the values of all variables while coding. You can also use a simple if-else statement to check for null values, such as if (numbers!= null) to avoid this exception.
A NullReferenceException happens when you try to access a reference variable that isn't referencing any object. If a reference variable isn't referencing an object, then it'll be treated as null .
Little late, but when you get a null reference exception like this, it can be misleading. The inner exception may be null (was in my case.)
The way I discovered the issue was to enable first chance exceptions in VS 2010.
Goto Debug -> Exceptions
then check all the boxes.
You need to look at the inner exception. When initialcomponent is called it can fire off other code which must be causing an exception. The inner exception should give you all the information you need. Note that it is possible that the inner exception will have an inner exception itself. Modify your app to write all these to a file or the clipboard or something.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With