2010-03-15 41 views
1

我有一個內部的winform應用程序來查看,編輯和插入成員數據。他們使用約40個sepertate表單頁面來操作數據的不同部分。在Winform應用程序中實現只讀視圖

我的問題是這樣的;爲表單頁面實現只讀視圖的最佳方式是什麼?

我的想法通過控制設置Enabled = False 或 離開他們是但不允許任何數據的修改(無保存按鈕等),除非它是「解鎖」是對 週期。

我很好奇其他人如何處理這與WinForm應用程序?

+1

請注意:只讀=禁用。 – 2010-03-15 14:11:19

回答

1

我認爲,如果一個字段不是要編輯的,它應該看起來不像字段。使它看起來像一個字段給用戶它應該是可編輯的視覺隊列。他們可能會問爲什麼它不是。因此,而不是Enabled=False,爲什麼不製作只讀字段標籤?

更新:另一種方法是如果你必須保留它們,文本字段就是讓它們看起來像標籤一樣。這將意味着使他們的背景顏色變灰,刪除邊框並移除tabstop。您可以創建一個DisableField函數來執行此操作。

+0

不確定這對我們的設置是否可行。每當他們想要編輯信息時,我都必須將「標籤」替換爲「文本框」。 – 2010-03-15 14:28:33

+0

是的,這是一個更好的用戶體驗。否則,用戶傾向於詢問「我如何啓用該字段?」... – Seb 2010-03-15 14:44:09

+0

因此,您將基於當前用戶擁有多個表單。如果他們目前只有只讀,則顯示他們'frmMemberReadOnly'。如果他們目前擁有完全權限,然後顯示一個完全不同的形式('frmMemberFull')與可編輯控件.... – 2010-03-15 15:02:34

1

如果你的數據綁定不支持只讀,那麼是,編寫一些代碼儘可能使UI只讀。但這不是'安全的',所以一定要阻止任何可能觸發更新的命令。

您希望它只讀是一致的,不允許用戶編輯他們無法保存的字段。但是不要在任何地方設置Enabled = false,表現不同(不會選擇/複製等)。

想想組合框,你想讓它們能夠下拉?

+0

標準的Windows數據綁定支持只讀?你是否在第二段中說我應該監視每個字段的click_event並檢查它是否爲「只讀」? – 2010-03-15 14:30:26

+0

我不知道你使用什麼形式的數據綁定......可能是手動的。不,不要將事件添加到所有控件,只是確保保存塊的主要邏輯。 – 2010-03-15 14:35:04

0

如果這樣說,如果表單上的字段是隻讀字段,那麼將它們替換爲不可編輯的標籤可能會更好。這將更適合於文本框,複選框,對於組合框和列表框,可能還需要給它們一個標籤,方法是將兩種情況下的選擇都顯示爲標籤 - 您怎麼看?

其實,這裏有一些鏈接,使您保留組合框/列表框,如果你想避免的選擇,如標籤...

  • 上實施只讀combo-的文章盒是在CodeProject
  • 唯一的疑難雜症是組合框不會看起來精確拋光如果只讀,這篇文章CodeProject顯示如何使其更加精緻。
  • 一個只讀的ComboBox這裏使用IExtendedProvider上CodeProject
  • 列表框(VB.NET)在這裏作爲一個只讀列表框上CodeProject
  • 複選框組合如何禁用複選框,但不是在這裏滾動條上Social.MSDN.Microsoft.com
  • 與這裏禁用的項目列表框的一篇文章CodeProject