人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

在設計期跟蹤代碼 (.NET)

在設計期跟蹤代碼 (.NET)

更新時間:2022-09-30 文章作者:未知 信息來源:網絡 閱讀次數:

在開發中碰到這樣的問題:

winform窗口中定義了基類窗體,在設計器中打開子類窗體的時候
出現諸如“窗口無法使用設計器進行進行設計,發生了......的異!钡男畔ⅲ⑶掖绑w無法打開,也就沒辦法使用窗體設計器進行界面的設計。但是運行起來一切正常。

這個問題的原因就是在解決方案資源管理器中雙擊窗體打開進行設計的時候,會去執行它的基類,也就是父窗體中的一些代碼,例如:

建立一個基類窗體,名為FormBase,再建立一個子類窗體FormDerive,從FormBase繼承
public class FormDerive : FormBase
{
private System.ComponentModel.Container components = null;

public FormDerive()
{

InitializeComponent();
}
...........................
}

然后在基類窗體的構造函數中加句代碼:
public FormBase()
{

InitializeComponent();

MessageBox.Show("It's Base Form!");
}

編譯,然后雙擊“解決方案資源管理器”中的FormDerive打開設計器,這時會先有一個MessageBox彈出,然后顯示FormDerive的設計界面。

現在來讓FormBase中的代碼發生異常,寫一個最簡單的產生“數組越界”的代碼

string[] array = new string[]{"1","2","3"};
for ( int i = 0; i <= array.Length ; i++ )
{
MessageBox.Show(array[i]);
}

再次打開設計器,彈出對話框后設計器一片空白,提示:
?試圖創建 WindowsApplication12.FormBase 的實例時發生異常。異常為“索引超出了數組界限!
?
如果在FormBase的Load事件中插入導致異常的代碼,使用設計器時會出現同樣的現象。

如果基類中的代碼比較簡單,可以通過閱讀找到問題,那么代碼比較復雜呢?
現在才說到正題。

在.net中提供了一個調試工具DbgClr.exe,它可以在設計器進行代碼的跟蹤。
如果你找不到這個文件,可以使用“搜索文件”找到它。

下面就是怎樣使用DbgClr跟蹤:
運行DbgClr.exe
點擊菜單:工具-調試進程,會列出目前系統的進程。

選擇devenv.exe進程,也就是VS.net集成開發環境,點附加。關閉對話框。
在DbgClr中打開要調試的.cs文件,這里選擇FormBase.cs文件

然后在FormBase的構造函數進行for循環的地方加上斷點。
重新打開FormDerive,這時會在DbgClr中中斷,可以進行調試了。

總結:我碰到出現這種窗體打不開的情況重要是在讀取一些配置文件時產生的,就是在設計期指定的路徑下沒有指定的文件,但是在運行時使用生成后事件把文件拷貝過來,所以運行期沒問題。

這問題搞了我好半天吶,知道了調試的方法,再出現這問題就不怕了。

DbgClr.exe的使用在幫助里有講解,我以前怎么就沒有注意到呢:
.NET Framework->工具和調試器->CLR 調試器

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 静海县| 沐川县| 台安县| 博客| 英德市| 嘉定区| 姚安县| 大厂| 金阳县| 宁陕县| 丹江口市| 望城县| 桓仁| 布拖县| 奈曼旗| 陇南市| 漯河市| 鹤岗市| 西青区| 渑池县| 临湘市| 沽源县| 淅川县| 独山县| 靖州| 玛沁县| 清水县| 景宁| 定日县| 焉耆| 湖州市| 平阴县| 金阳县| 鲁山县| 通海县| 武城县| 洞头县| 昌图县| 河津市| 牟定县| 枣阳市|