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

Đề tài: Làm thế nào để form cố định trong C#???

  1. #1
    Ngày gia nhập
    05 2009
    Bài viết
    5

    Mặc định Làm thế nào để form cố định trong C#???

    Bây giờ tôi chạy chương trình thì một giao diện chính hiển thị và một giao diện đănnhạp xuất hiện. Mình muốn form đăng nhập cố định có nghĩa là khi minh kéo chuột vẫn không được trừ khi có nút đăng nhập hoặc nút thoát. Tiếp nữa là mình đăng nhập vào rồi thì muốn bật menutimkiem.enable=true trong form chính lên khi đứng tại form Đăng nhập thì làm thế nào?
    Mong hồi âm..
    Đã được chỉnh sửa lần cuối bởi hoctap222 : 13-05-2009 lúc 04:21 PM.

  2. #2
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    733

    Bạn có thể nói rõ hơn không? Đây là chương trình về gì vậy?

  3. #3
    Ngày gia nhập
    02 2009
    Bài viết
    5

    Mình cũng chưa rõ ý của bạn lắm.
    Nhưng có thể cái đó có thể chỉnh trong thuộc tính của form.
    Properties và Xem xét các thuộc tính.
    Ở đây bạn có thể tùy chỉnh để có thể bỏ đi các booton tắt, thu nhỏ, Bỏ đi các viền, border của form... Và nhiều thứ khác.
    Mình nhớ làm mình đã chỉnh 1 cái j` đó mà không ai được phép xê dịch form của mình đi đâu cả mà nó hiện lên thế nào thì chỉ có thể để thế.
    Bạn có thể thử xem lại xem nhé!!
    Còn ý hỏi sau: đăng nhập vào rồi thì muốn bật menutimkiem
    Thì mình chưa rõ bạn hỏi j` thật.
    Mình nghĩ câu hỏi của bạn có thể là thế này: Loadform menu tim kiem ko bat. Khi dang nhap xong menu tìm kiếm mới bật. Nếu như thế này: trong sự kiện loadform: Bạn để: menutimkiem.enable=false; hoặc: menutimkiem.Visible=false;
    Rồi ở trong sự kiện click chuột :vào nút đăng nhập: bạn cho là true.
    Ko biết mình có trả lời đúng câu hỏi của cậu ko nhỉ?? ;
    Đã được chỉnh sửa lần cuối bởi honeydt : 13-05-2009 lúc 08:31 PM.

  4. #4
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Để tạo Form ko thể di chuyển, đơn giản nhất là set thuộc tính FormBorderStyle là None ( sẽ mất titlebar)
    Cánh Chym ứ mỏi

  5. #5
    Ngày gia nhập
    03 2009
    Bài viết
    149

    Trích dẫn Nguyên bản được gửi bởi dieucay555 Xem bài viết
    Để tạo Form ko thể di chuyển, đơn giản nhất là set thuộc tính FormBorderStyle là None ( sẽ mất titlebar)
    mình đồng ý cách này nhưng bạn phải tạo thêm các button để phóng to, thu nhỏ và thoát
    Sharing for success!

  6. #6
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Mặc định Làm thế nào để form cố định trong C#???

    Nếu dùng API thì ko cần set thuộc tính FormBorderStyle là none
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Runtime.InteropServices;
    10.  
    11. namespace WindowsFormsApplication3
    12. {
    13.     public partial class Form1 : Form
    14.     {
    15.         public Form1()
    16.         {
    17.             InitializeComponent();
    18.         }
    19.         [DllImport("user32.dll")]
    20.         private static extern Int32 EnableMenuItem ( System.IntPtr hMenu , Int32 uIDEnableItem, Int32 uEnable);
    21.         private const Int32 HTCAPTION = 0x00000002;
    22.         private const Int32 MF_BYCOMMAND =0x00000000;
    23.         private const Int32 MF_ENABLED =0x00000000;
    24.         private const Int32 MF_GRAYED =0x00000001;
    25.         private const Int32 MF_DISABLED =0x00000002;
    26.         private const Int32 SC_MOVE = 0xF010;
    27.         private const Int32 WM_NCLBUTTONDOWN = 0xA1;
    28.         private const Int32 WM_SYSCOMMAND = 0x112;
    29.         private const Int32 WM_INITMENUPOPUP = 0x117;
    30.  
    31.         protected override void WndProc(ref System.Windows.Forms.Message m )
    32.         {
    33.             if( m.Msg == WM_INITMENUPOPUP )
    34.             {
    35.                 //thu ly hien thi menu he thong
    36.                 if ((m.LParam.ToInt32() / 65536) != 0) // 'chia cho 65536 de lay hiword
    37.                     {
    38.                         Int32 AbleFlags = MF_ENABLED;
    39.                         AbleFlags = MF_DISABLED | MF_GRAYED; // ko cho di chuyen
    40.    
    41.                         EnableMenuItem(m.WParam, SC_MOVE, MF_BYCOMMAND | AbleFlags);
    42.                      }
    43.              }
    44.            
    45.                     if(m.Msg==WM_NCLBUTTONDOWN) //chan viec di chuyen titlebar
    46.                     {
    47.                         if(m.WParam.ToInt32()==HTCAPTION) return;
    48.                     }
    49.                     if (m.Msg==WM_SYSCOMMAND) // ngan viec di chuyen tren menu he thong
    50.                     {
    51.                         if ((m.WParam.ToInt32() & 0xFFF0) == SC_MOVE) return;
    52.                     }
    53.                  
    54.              base.WndProc(ref m);
    55.       }
    56.        
    57.     }
    58. }
    Cánh Chym ứ mỏi

  7. #7
    Ngày gia nhập
    10 2007
    Bài viết
    13

    Nhân đây. cũng hỏi mọi người 1 tí: Mình có 1 MDI Form, khi sử dụng 1 Form children thì Form parent bị vô hiệu thì làm như thế nào? Trường hợp tổng quát là Form 1 sử dụng thì Form 2 trước nó vô hiệu thì làm như thế nào?

  8. #8
    Ngày gia nhập
    04 2008
    Bài viết
    9

    Khi show form, bạn dùng: formName.ShowDialog();

  9. #9
    Ngày gia nhập
    03 2009
    Bài viết
    204

    Trích dẫn Nguyên bản được gửi bởi dieucay555 Xem bài viết
    Để tạo Form ko thể di chuyển, đơn giản nhất là set thuộc tính FormBorderStyle là None ( sẽ mất titlebar)
    Có cách nào nữa không vì nếu sử dụng cách này giao diện sẽ rất xấu. Có thể dùng code để ngăn không cho di chuyển được không bạn. Và code sẽ như thế nào?

  10. #10
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Trích dẫn Nguyên bản được gửi bởi hvcuongit Xem bài viết
    Có cách nào nữa không vì nếu sử dụng cách này giao diện sẽ rất xấu. Có thể dùng code để ngăn không cho di chuyển được không bạn. Và code sẽ như thế nào?
    Thì như mình code đấy thôi, dùng API thì sẽ ko cần set thuộc tính FormBorderStyle là None
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Runtime.InteropServices;
    10.  
    11. namespace WindowsFormsApplication3
    12. {
    13.     public partial class Form1 : Form
    14.     {
    15.         public Form1()
    16.         {
    17.             InitializeComponent();
    18.         }
    19.         [DllImport("user32.dll")]
    20.         private static extern Int32 EnableMenuItem ( System.IntPtr hMenu , Int32 uIDEnableItem, Int32 uEnable);
    21.         private const Int32 HTCAPTION = 0x00000002;
    22.         private const Int32 MF_BYCOMMAND =0x00000000;
    23.         private const Int32 MF_ENABLED =0x00000000;
    24.         private const Int32 MF_GRAYED =0x00000001;
    25.         private const Int32 MF_DISABLED =0x00000002;
    26.         private const Int32 SC_MOVE = 0xF010;
    27.         private const Int32 WM_NCLBUTTONDOWN = 0xA1;
    28.         private const Int32 WM_SYSCOMMAND = 0x112;
    29.         private const Int32 WM_INITMENUPOPUP = 0x117;
    30.  
    31.         protected override void WndProc(ref System.Windows.Forms.Message m )
    32.         {
    33.             if( m.Msg == WM_INITMENUPOPUP )
    34.             {
    35.                 //thu ly hien thi menu he thong
    36.                 if ((m.LParam.ToInt32() / 65536) != 0) // 'chia cho 65536 de lay hiword
    37.                     {
    38.                         Int32 AbleFlags = MF_ENABLED;
    39.                         AbleFlags = MF_DISABLED | MF_GRAYED; // ko cho di chuyen
    40.    
    41.                         EnableMenuItem(m.WParam, SC_MOVE, MF_BYCOMMAND | AbleFlags);
    42.                      }
    43.              }
    44.            
    45.                     if(m.Msg==WM_NCLBUTTONDOWN) //chan viec di chuyen titlebar
    46.                     {
    47.                         if(m.WParam.ToInt32()==HTCAPTION) return;
    48.                     }
    49.                     if (m.Msg==WM_SYSCOMMAND) // ngan viec di chuyen tren menu he thong
    50.                     {
    51.                         if ((m.WParam.ToInt32() & 0xFFF0) == SC_MOVE) return;
    52.                     }
    53.                  
    54.              base.WndProc(ref m);
    55.       }
    56.        
    57.     }
    58. }
    Cánh Chym ứ mỏi

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

  1. Làm thế nào để click vào nút minimum trong form thì form ẩn đi không xuất hiện ở taskbar?
    Gửi bởi thanhhungph127 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 16-07-2013, 09:45 PM
  2. làm trong suốt Form nhưng vẫn thao tác được trên Form..
    Gửi bởi lequ0ch0anglt trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 7
    Bài viết cuối: 28-10-2011, 11:31 PM
  3. Graphic Load lại form mà không phải tạo form mới trong C# làm thế nào?
    Gửi bởi langtu4t trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 02-09-2011, 11:42 PM
  4. làm thế nào để chèn ảnh .gif vào form ,hoặc làm thế nào để có ảnh sinh động trong form
    Gửi bởi thanthoai101010 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 30-11-2010, 01:03 PM
  5. Gọi form trong MFC 2005 như thế nào để có thể tương tác cả 2 form?
    Gửi bởi nam_dkn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 10-04-2009, 01:41 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