Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Phân quyền menu trong Windows Application.

  1. #1
    Ngày gia nhập
    09 2009
    Nơi ở
    Hỏi để khủng bố hả?
    Bài viết
    224

    Angry Phân quyền menu trong Windows Application.

    Mình có một MenuStrip và các ToolStripMenuItem trong ứng dụng Windows Form. Mình đặt tên cho các ToolStripMenuItem là N1,N2,N3,N4...etc...(hình bên dưới)



    Mình có tạo 1 table để chứ thông tin người dùng. N_USERS_LIST(ID_USER,USERNAME,PASSWORD) và 1 table N_RIGHTLIST(ID_USER,MENU) để phân quyền người sử dụng.

    Mục đích là khi load form lên thì sẽ kiểm tra trong table N_USERS_LIST để kiểm tra login. Sau đó kiểm tra trong N_RIGHTLIST để phân quyền MENU. Nếu ID_USER nào có MENU tương ứng thì Enabled, ngược lại thì DISABLE tên MenuItem đó.

    Thao tác là duyệt qua tất cả Item trong Menu và kiểm tra bằng hàm kiểm tra, nhưng làm sao để ép kiểu String thành ToolStripMenuItem ??

    Visual C# Code:
    1. foreach (ToolStripMenuItem item in m.menuStrip1.Items)
    2. {
    3.       if (Check_Menu(USER , item.Name.Text) == true)
    4.       {
    5.              item.Name.Enabled = true;
    6.              // lỗi xuất hiện ở đây vì nó là chuỗi chứ không phải là tên của control ToolStripMenuItem
    7.       }
    8.       else
    9.       {
    10.              item.Name.Enabled = false;
    11.              // lỗi xuất hiện ở đây vì nó là chuỗi chứ không phải là tên của control ToolStripMenuItem
    12.       }
    13. }

    Để lấy tên của các ToolStripMenuItem thì mình phải làm sao? Cám ơn các bạn đã đọc và hướng dẫn.
    Chỗ này dùng để ghi chữ ký

  2. #2
    Ngày gia nhập
    03 2010
    Bài viết
    122

    item.Enable=true đc ko bạn?

  3. #3
    Ngày gia nhập
    09 2009
    Nơi ở
    Hỏi để khủng bố hả?
    Bài viết
    224

    Trích dẫn Nguyên bản được gửi bởi kqphu Xem bài viết
    item.Enable=true đc ko bạn?
    Item.Enable = true thì không báo lỗi nhưng Item là thuộc tính Text chứ không phải là thuộc tính Name của ToolStripMenuItem .
    Chỗ này dùng để ghi chữ ký

  4. #4
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Làm gì có item.Name.Enable = ... vì rõ ràng item.Name là một string. Còn item.Enbale thì đúng rồi. item không phải là thuộc tính Text (mà cũng chẳng phải là một thuộc tính nào cả), nó là một đối tượng (một thể hiện) của lớp ToolStripMenuItem. Name, Text, ... là một thuộc tính của nó. Tóm lại: item.Enable = ...

  5. #5
    Ngày gia nhập
    09 2009
    Nơi ở
    Hỏi để khủng bố hả?
    Bài viết
    224

    Trích dẫn Nguyên bản được gửi bởi iamonlining Xem bài viết
    Làm gì có item.Name.Enable = ... vì rõ ràng item.Name là một string. Còn item.Enbale thì đúng rồi. item không phải là thuộc tính Text (mà cũng chẳng phải là một thuộc tính nào cả), nó là một đối tượng (một thể hiện) của lớp ToolStripMenuItem. Name, Text, ... là một thuộc tính của nó. Tóm lại: item.Enable = ...
    Nhưng Item.Enabled = false; không có tác dụng vì Item là thuộc tính Text. Muốn Item Enabled hay Disable thì phải là tên của Item .Enable = True mới được.

    Vậy để ẩn hiện menu thì mình cần làm như thế nào?
    Chỗ này dùng để ghi chữ ký

  6. #6
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Smile Phân quyền menu trong Windows Application.

    Trích dẫn Nguyên bản được gửi bởi thuan199 Xem bài viết
    Nhưng Item.Enabled = false; không có tác dụng vì Item là thuộc tính Text. Muốn Item Enabled hay Disable thì phải là tên của Item .Enable = True mới được.

    Vậy để ẩn hiện menu thì mình cần làm như thế nào?
    Bạn có vẻ bảo thủ quá. Nhắc lại cho bạn, cái item trong foreach của bạn là một đối tượng, chứ không phải là một thuộc tính, nên nó ko phải là thuộc tính Text hay bất kỳ một thuộc tính nào. Còn tên của item chỉ là thuộc tính để phân biệt các đối tượng với nhau, nó không có thuộc tính Enable cho bạn dùng. Nếu item.Enable không có tác dụng thì bạn xem lại máy tính hay project của bạn đi, có vấn đề gì đó.
    p/s: Ẩn hiện thì cũng thế, chỉ là thay item.Enable bằng item.Visible. Nhưng nếu dùngEnable mà không được thì bạn cũng đừng nghĩ đến việc dùng Visible.

  7. #7
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Trích dẫn Nguyên bản được gửi bởi thuan199 Xem bài viết
    Mình có một MenuStrip và các ToolStripMenuItem trong ứng dụng Windows Form. Mình đặt tên cho các ToolStripMenuItem là N1,N2,N3,N4...etc...(hình bên dưới)



    Mình có tạo 1 table để chứ thông tin người dùng. N_USERS_LIST(ID_USER,USERNAME,PASSWORD) và 1 table N_RIGHTLIST(ID_USER,MENU) để phân quyền người sử dụng.

    Mục đích là khi load form lên thì sẽ kiểm tra trong table N_USERS_LIST để kiểm tra login. Sau đó kiểm tra trong N_RIGHTLIST để phân quyền MENU. Nếu ID_USER nào có MENU tương ứng thì Enabled, ngược lại thì DISABLE tên MenuItem đó.

    Thao tác là duyệt qua tất cả Item trong Menu và kiểm tra bằng hàm kiểm tra, nhưng làm sao để ép kiểu String thành ToolStripMenuItem ??

    Visual C# Code:
    1. foreach (ToolStripMenuItem item in m.menuStrip1.Items)
    2. {
    3.       if (Check_Menu(USER , item.Name.Text) == true)
    4.       {
    5.              item.Name.Enabled = true;
    6.              // lỗi xuất hiện ở đây vì nó là chuỗi chứ không phải là tên của control ToolStripMenuItem
    7.       }
    8.       else
    9.       {
    10.              item.Name.Enabled = false;
    11.              // lỗi xuất hiện ở đây vì nó là chuỗi chứ không phải là tên của control ToolStripMenuItem
    12.       }
    13. }

    Để lấy tên của các ToolStripMenuItem thì mình phải làm sao? Cám ơn các bạn đã đọc và hướng dẫn.
    Hồi sáng có lướt qua bài của bạn nhưng đi luôn không quan tâm hehe

    Xem ra cái đó cũng làm bạn đâu khổ....

    Gợi ý: ví dụ bạn có 2 hay 3 quyền hoặc ++ thì làm bao nhiêu cái void chứa các Item của menu, disable or enable tùy....

    lúc login vừ check user + check permission...continue...
    Đã được chỉnh sửa lần cuối bởi cchangkhongayngo : 25-09-2011 lúc 10:32 AM.

Các đề tài tương tự

  1. Phân Quyền (Phần I : Phân quyền trên Menu)
    Gửi bởi phucpham trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 27
    Bài viết cuối: 31-07-2015, 10:42 AM
  2. Cách làm project dạng Windows Forms Application trong C++?
    Gửi bởi mankinchi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 23-02-2013, 10:07 AM
  3. Cách sử dụng thư viện .dll của .Net x86 trong lập trình windows phone application?
    Gửi bởi rambolun trong diễn đàn Lập trình Windows Mobile bằng C#
    Trả lời: 0
    Bài viết cuối: 29-05-2012, 03:43 PM
  4. lập trình đồ họa bằng thư viện windows.h trong win32 console application thế nào???
    Gửi bởi sau_thien_thu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 06-07-2011, 11:13 AM
  5. Lấy Path của thư mục Application trong Windows?
    Gửi bởi Click8A4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 15-05-2011, 03:01 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn