2012-05-15 67 views
0

我在我的WPF應用程序中使用C#構建Excel應用程序。在該Excel中,我創建了一個標題行。現在我想將標題行單元格作爲不可編輯的單元格,並且它應該恢復爲以前的值。爲此,我使用驗證作爲標題行以滿足此條件。當我要更改標題行中的任何單元時它將顯示一個警告框。警報框圖標不好,還有其他一些按鈕,如重試,取消和幫助。如何使Excel作爲不可編輯的單元格的範圍使用C#

1)現在我想知道如何通過使用一些更好的格式(圖標應該是一個信息圖像,它應該有重試和取消按鈕,無需幫助按鈕),以獲得該警報框。

(或)

2)我不想顯示警告框,但新修改的值有恢復到以前的值。這個單元必須是不可編輯的。

(或)

3)我們可以使用鎖定單元的特定範圍?

我爲條件碼是:

public static void FormatAsHeader(this Range range, bool wrapContent) 
{ 
. 
. 
range.Validation.Add(XlDVType.xlValidateCustom, Type.Missing, Type.Missing, "\"\""); 
} 

任何一個可以告訴我這個問題的解決?

回答

3

您應該能夠:range.Locked = true;,然後在工作表上撥打Protect()

請參閱Range.LockedWorkSheet.Protect

+0

好。但在該函數「FormatAsHeader」具有範圍只有不工作表。 Bcoz我正在使用MVVM模型,這就是爲什麼我在我的控制器上調用這個函數。所以在這裏我沒有活動工作表。我們可以通過範圍獲得活動工作表嗎? – SuryaKavitha

+0

@pst:在這裏,我沒有這個類中的活動工作表。在這裏,我只有範圍。 – SuryaKavitha

+0

Range有一個指向包含工作表的'.Worksheet'屬性。 – mafafu

相關問題