2011-06-14 33 views
-1

在datagrid字段中的form2上,我有「admin」,它是一個複選框。當我從form1 調用form2時,首先要檢查該用戶(已登錄)是否在域「admin」中進行了檢查。 如果是,則授予用戶對form2的訪問權,否則返回form1,並帶有一個消息框,說明用戶無權訪問。如果複選框在C#中的數據網格中被選中

檢查「if has checked」是否在form2加載?

編輯:能不能做到像:

form1: 
    call form2 function test 

form2: 
    function test that checks if the current user has checked the checkbox in the datagrid 

回答

0

從我的理解是什麼你問,還有你可以做的各種方法。如果用戶具有管理員訪問權限,則可以檢查form2的加載事件,也可以在創建form2實例之前執行form1檢查並檢查用戶是否具有管理員權限。

+0

總之,應該在form2上。問題是我無法檢查是否在加載時檢查複選框,因爲datagrid正在同一時間填充。所以它應該在此之後,但仍然不應該顯示該窗體(form2),如果這個用戶(登錄一個)沒有管理權限。 – djuvec123 2011-06-14 21:15:24

0

有兩種選擇。首先,讀取DataGrid中的狀態像一個CheckBox:

CheckBox.Checked = GridView.Rows[0].Cells[Index.Of.CheckBox] 

還是應該強制轉換:

if ((CheckBox)GridView.Rows[0].Cells[Index.Of.CheckBox]).Checked) 
    DoWhatEverYouWant 
0

不,如果你執行負載檢查,那麼你可能會遇到麻煩防止形式從出現。

相反,將方法放在Form1上,將執行檢查或顯示Form2?這樣,您想要顯示Form2的所有代碼都可以從相同的檢查中受益。

public class Form1 
{ 
    ... 
    public void ShowAdminForm2() 
    { 
     if (!chkAdmin.IsChecked) 
     MessageBox.Show ("Not admin"); 
     else 
     new Form2().ShowDialog(); 
    } 
} 
+0

這是我的第一個想法。在form1上有點擊按鈕將你指向form2。問題是當我想比較如果管理員字段檢查當前用戶我得到錯誤。首先,你不能去「如果(!chkAdmin.IsChecked)」,而不是你必須檢查數據網格,其次數據網格是在form2上,並且不允許你查看它。 – djuvec123 2011-06-14 21:22:48

+0

通常,最好先從數據庫中解讀數據。你能得到你的數據的規範形式,然後檢查數據的許可,而不是等待控件加載? – 2011-06-14 21:25:12

相關問題