2011-07-18 66 views
0

我在Visual Studio 2008中的VB.Net項目中使用DevExpress(10.2)Treelist。我目前有一個TreeList.OptionsBehavior.Editable = True的treelist。我有兩列第一個是AllowEdit = False。第二欄我通過動作FocusedNodeChanged動態設置AllowEditReadOnlyDevexpress Treelist中的單元格設置爲可編輯但它不會讓我編輯

FocusedNodeChange子例程中,我檢查某一特定值是否在行中,如果是,我將其設置爲可編輯或不可編輯。我將其設定爲可編輯:

treeList.Columns("field_name").OptionsColumn.ReadOnly = False 
treeList.Columns("field_name").OptionsColumn.AllowEdit = True 

,並將其設置爲只讀有:

treeList.Columns("field_name").OptionsColumn.ReadOnly = True 
treeList.Columns("field_name").OptionsColumn.AllowEdit = False 

此作品在一定程度上。現在,如果我進入可編輯單元格中的光標,光標會出現並閃爍,所以我知道它是可編輯的,如果我在單元格中,當不可編輯的行聚焦時光標不會閃爍。

但是,即使光標閃爍,我無法輸入。當我點擊鍵盤上的按鍵(數字和字母)時,沒有任何東西被寫入。

解決

簡單的解決方案。我用來將數據提取到表中的存儲過程不包含我試圖編輯而不可編輯的特定列的字段。這是因爲這是一個新值,與正常情況不同,插入/更新不同。爲了解決這個問題,我提取了null和/或0,它工作正常。

回答

0

您使用的代碼不完全正確。最好的解決方案是處理TreeList的ShowingEditor事件並相應地設置e.Cancel參數。要確定當前單元格,請使用TreeList的FocusedColumn和FocusedNode屬性。

+0

我刪除了FocusedNodeChange並做了你在PresentationEditor事件中說過的話,並且我遇到了同樣的問題。在我可以編輯的行中,我看到閃爍的光標並且無法輸入。在我不想編輯的行中,我無法輸入,也看不到閃爍的光標。 – Kyra

+0

處理ShowingEditor事件並通過e.Cancel參數控制單元格的編輯。您不應該更改列的ReadOnly和AllowEdit屬性。這應該工作。 – platon

相關問題