WPF中未將對象引用設置到對象的實例


前幾天,我開始了WPF的基礎學習,一上來我就遇到了一個令我頭痛的問題,按照書上的例子我寫了一段屬於自己的代碼,一個簡單的色調器。滿心期待的編譯運行,就出現了未將對象引用設置到對象的實例。我在網上查閱了一下資料。

一、一般的錯誤是
1.ViewState對象為空(NULL)。
2.DateSet為空。
3.Sql語句或者Database的原因導致DataReader為空。
4.聲明字符串變量時未賦空值就應用變量。
5.未用new初始化對象。
6.Session對象為空。
7.對空間賦文本值時,之不存在。
8.使用Request.QueryString()時,所獲取的對象不存在或者在值為空的時候未賦予初始值。
二、在WPF中出現諸如此類的問題
WPF類似於HTML一樣是從上到下執行。
如下代碼:

 1 <Grid>
 2       
 3             <Rectangle Fill="#ff6600"  Height="100" HorizontalAlignment="Left" Margin="278,12,0,0" Name="RectangleShow" Stroke="Black" VerticalAlignment="Top" Width="213" />
 4             <TextBlock Height="23" HorizontalAlignment="Left" Margin="278,120,0,0" Name="txtColor" Text="Color" VerticalAlignment="Top" />
 5             <TextBox Height="23" HorizontalAlignment="Left" Margin="278,149,0,0" Name="HexColor" VerticalAlignment="Top" Width="174" Text="#FF6600" />
 6             <TextBlock Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="txtAlph" Text="AlphColor" VerticalAlignment="Top" />
 7             <Slider Height="23" HorizontalAlignment="Left" Maximum="225" Value="225"  Margin="12,41,0,0" Name="AlphColor" VerticalAlignment="Top" Width="225"  ValueChanged="SilderButton_Click"/>
 8             <TextBlock Height="23" HorizontalAlignment="Left" Margin="15,70,0,0" Name="txtRed" Text="Red" VerticalAlignment="Top" />
 9             <Slider Height="23" HorizontalAlignment="Left" Maximum="225" Value="225"  Margin="12,99,0,0" Name="RedColor" VerticalAlignment="Top" Width="225" ValueChanged="SilderButton_Click" />
10             <TextBlock Height="23" HorizontalAlignment="Left" Margin="15,136,0,0" Name="txtGreen" Text="Green" VerticalAlignment="Top" />
11             <Slider Height="23" HorizontalAlignment="Left" Margin="12,165,0,0" Name="GreenColor" VerticalAlignment="Top" Width="225" Maximum="225" Value="102" ValueChanged="SilderButton_Click" />
12             <TextBlock Height="23" HorizontalAlignment="Left" Margin="12,204,0,0" Name="txtBlue" Text="Blue" VerticalAlignment="Top" />
13             <Slider Height="23" HorizontalAlignment="Left" Margin="12,233,0,0" Name="BlueColor" VerticalAlignment="Top" Width="225" Maximum="225" Value="0" ValueChanged="SilderButton_Click"/>
14         
15     </Grid>
View Code


當將第一個空間初始化完畢后,就會執行其中的SilderButton_Click()方法,我們幾乎的Silder空間都使用了這個方法,而且這個方法中包含了其他的控件,這樣導致的后果就在於,編譯器很溫馨提示你:XX行“未將對象引用設置到對象的實例”。
在我編譯我的程序時候出現了如下錯誤:

當出現這種情況的時候,我先檢查了一下自己寫的代碼是否有問題,當發現並未有什么問題的時候,我又設置斷點進行調試,發現其中的AlphColor有值,其他的控件都為NULL,我就猜想為什么出現這種情況呢,上網查閱了相關的資料,發現原來XAML是逐行執行編譯,當遇到控件有方法的時候,就會檢查其中的方法。本程序在編譯的時候就是在AlphColor控件進行編譯的時候,其他的控件都還沒有初始化,所以出現了這種未將對象引用到對象的實例。那么我們如何修改呢?
我發現窗體有一個方法Loaded,這就是在窗體加載完成后執行的方法,那么我就通過添加事件的方式,對其進行添加。

1  private void Window_Loaded(object sender, RoutedEventArgs e)
2         {
3             AlphColor.ValueChanged += SilderButton_Click;
4             RedColor.ValueChanged += SilderButton_Click;
5             GreenColor.ValueChanged += SilderButton_Click;
6             BlueColor.ValueChanged += SilderButton_Click;
7         }
View Code

在進行編譯運行,執行成功!
這是我在學習WPF的時候遇到的第一個問題,有可能大家沒有遇到這種情況,有可能大家遇到這種情況輕易而舉將其解決了,沒有解決相似問題的,希望能對你有所幫助。如果我其中的內容那里有錯,請大家提醒一下,謝謝!

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM