DialogResult 使用問題 |
尚未結案
|
chrischi
初階會員 發表:58 回覆:59 積分:28 註冊:2004-05-04 發送簡訊給我 |
各位好 我在 Windows Forms Application 使用 DialogResult 遇到一個問題, 就是 Delphi 2005 的程式碼 為何不能直接使用 DialogResult.Yes, 如下 : Self.DialogResult := DialogResult.Yes; *Self 是一個 Form *程式單元已 uses System.Windows.Forms namespace 當我一編譯程式時就會產生 Error : [Error] MyDemo.pas(97): E2018 Record, object or class type required 但我將上述程式碼改成下述程式碼又可以 : Self.DialogResult := System.Windows.Forms.DialogResult.Yes; 既然已經 uses System.Windows.Forms 了竟然還要加上那冗長的 System.Windows.Forms. 才可以正確編譯, 但在使用如 DataRowState.Detached 就不會有這種問題. 看了一下 Help, DialogResult 與 DataRowState 的差別是 DataRowState 有加上 [Flags] 這個 Attribute 而 DialogResult 沒有, 但一樣都是 enumeration 竟然有這麼大的差別. 總不會每次使用到 DialogResult 都要那麼辛苦吧 : // 冗長的程式碼... if MessageBox.Show('...', '確認', MessageBoxButtons, MessageBoxIcon.Question) = System.Windows.Forms.DialogResult.Yes then ... // 合理的程式碼... if MessageBox.Show('...', '確認', MessageBoxButtons, MessageBoxIcon.Question) = DialogResult.Yes then ... 請問有何方法(限用 .NET 內建的方法)可改善這種情況嗎? 謝謝 Chris |
geliswu
一般會員 發表:28 回覆:15 積分:13 註冊:2004-10-06 發送簡訊給我 |
Dear chrischi 還記得我們在宣告Delphi 的Record也就是Enumerate的時候是宣告在Type下面,因為語言關係,DialogResult在這裡也要宣告後才可以使用,這個部分我都是這樣用的拉..你參考下..^__^ type
d_result = DialogResult; TWinForm = class(System.Windows.Forms.Form)
.......省略
procedure InitializeComponent;
procedure Button1_Click(sender: System.Object; e: System.EventArgs);
{$ENDREGION}
strict protected
///
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |