Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Vấn đề liên quan đến việc bật tắt form

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    40

    Mặc định Vấn đề liên quan đến việc bật tắt form

    Mình đang làm một khung login mình muốn sau khi đăng nhập click ok, thì form login (tên là form 1) sẽ mất, form 2 (bật lên), mình viết đoạn code như sau:
    Code:
    private void Ok_Click(object sender, EventArgs e)
            {
                if (text1.Text == "")
                {
                    MessageBox.Show("Enter Username");
                    text1.Focus();
                    return;
                }
                
                Form frm = new Form2();
                frm.Show();
                this.Close();
            }
    Nhưng khi chạy chương trình, bấm Ok, nó mất form1 nhưng form2 ko tự động bật lên cho hỏi tại sao vậy mấy bạn?
    Đã cho IsMdicontainer giá trị False.
    Rồi mấy bạn cho mình hỏi luôn, lệnh nào để khi click vào nút OK của form3 nó tự động quay về form2 chứ ko tạo một cửa sổ form2 mới. Hiện tại khi làm form3 click vào nút Ok nó có. tới 2 cửa sổ form2. Cám ơn nhiều

  2. #2
    Ngày gia nhập
    11 2007
    Bài viết
    294

    1 - Kiểm tra xem form1 có phải là form được gọi trong app ko?
    2 - Dùng showdialog,xong thì dispose nó đi.
    Is the moon rising...

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    40

    Trích dẫn Nguyên bản được gửi bởi darkan Xem bài viết
    1 - Kiểm tra xem form1 có phải là form được gọi trong app ko?
    2 - Dùng showdialog,xong thì dispose nó đi.
    Mình hơi dốt tí, cho mình hỏi kiểm tra form1 có đc gọi trong application ko là sao vậy bạn?
    Còn vấn đề 2 mình đã làm đc, bấm OK form3 mất quay lại form2 cám ơn bạn đã giúp

  4. #4
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Bạn tham khảo cái này xem có đúng ý bạn không?
    Code:
    http://forums.congdongcviet.com/showthread.php?t=6058&page=3
    Mình cũng chưa hiểu lắm ý của bạn, tuy nhiên có thể tạo một cờ (flag) để đoán nhận việc mở hay không.
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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

    trời ơi, hiện lên thì mới lạ...
    bạn phải khai như vầy nè

    Form2 frm = new Form2();

    thay vì Form frm = new Form2();

    trước đó đương nhiên add 1 cái form2 vào project. Thử đi nhoa !
    Ngu 3 năm , khôn 1 giờ
    1 giờ đủ làm nên mọi chuyện

  6. #6
    Ngày gia nhập
    01 2008
    Bài viết
    40

    Mặc định Vấn đề liên quan đến việc bật tắt form

    Trích dẫn Nguyên bản được gửi bởi kaka11d Xem bài viết
    trời ơi, hiện lên thì mới lạ...
    bạn phải khai như vầy nè

    Form2 frm = new Form2();

    thay vì Form frm = new Form2();

    trước đó đương nhiên add 1 cái form2 vào project. Thử đi nhoa !
    Vẫn ko đc bạn ơi, nếu mình bỏ dòng lệnh
    Code:
     this.close()
    thì nó sẽ hiện ra form 2 nhưng form 1 vẫn còn đó mà ko tắt đi (đương nhiên).

  7. #7
    Ngày gia nhập
    06 2007
    Nơi ở
    TP.HCM
    Bài viết
    113

    Trích dẫn Nguyên bản được gửi bởi TCH Xem bài viết
    Mình hơi dốt tí, cho mình hỏi kiểm tra form1 có đc gọi trong application ko là sao vậy bạn?
    Tức là có phải trong class program app đã gọi form 1 ko. Như vậy nè:
    Visual C# Code:
    1.             Application.Run(new frmMain());
    Mặc định khi tạo ứng dụng thì nó sẽ gọi form tạo đầu tiên.

    Để xử lý cái này trên diễn đàn đã có rất nhiều bài viết, cố gắng tìm kiếm để học hỏi được nhiều điều thú vị.

    Sau đây là một cách:

    Chỉnh lại trong class program:
    Visual C# Code:
    1.             Form2 frm2 = new Form2();
    2.             frm2.Show();
    3.             Application.Run();

    Tớ chỉ ví dụ với ứng dụng có 2 form là Form1, và Form2

    Trong Form2 làm cái gì đó thì tùy, ở đây ví dụ Form2 hiện lên trước sau đó close Form2 và show Form1. Nên trong Form2 tại đâu đó xử lý như thế nào đó nhưng có đoạn sau:
    Visual C# Code:
    1.                 Form1 frm1 = new Form1();
    2.                 frm1.Show();
    3.                 this.Close();

    Trong Form1 chắc chắc phải khai báo cho sự kiện này như sau: (không khai báo, ứng dụng không exit thì đừng trách tui ko nói trước nha).
    Visual C# Code:
    1.         private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    2.         {
    3.             Application.Exit();
    4.         }

    DEMO

    Gác Kiếm

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

    OK thank mod very much. Mình làm đc rồi. Còn cái đoạn application.exit(); đương nhiên mình có làm rồi.

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

    anh sunflower cho hỏi nữa nha : hiện em đang muốn kết nối với cơ sở dữ liệu
    Code:
    string strcon = "server =ALPHA;user id = sa;password = ;database = QLDSV";
    sqlconnection conn = new sqlconnecton(strcon);
    conn.open();
    Vậy cái dòng này đặt ở đâu trong project của em bây giờ?
    Form 1
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsApplication2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                
            }
                     
           private void Ok_Click(object sender, EventArgs e)
            {
                if (text1.Text == "")
                {
                    MessageBox.Show("Enter Username");
                    text1.Focus();
                    return;
                }
                         
                Form2 frm = new Form2();
                frm.Show();
                this.Close();
           }
                   
            private void cancel_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }      
        }
    }
    form 1 của em là khung login. Hay không đặt trong đây mà đặt trong program.cs?

  10. #10
    Ngày gia nhập
    06 2007
    Nơi ở
    TP.HCM
    Bài viết
    113

    Khi đã khai báo chuổi kết nối và đối tượng sqlconnection thì tốt nhất nên khai báo ở đâu đó để mọi lúc đều có thể sử dụng nó. Tớ làm mấy cái quản lý thì luôn có một class Connection riêng, và khi nào cần thì gọi tới nó. Lớp connection này có thể là static hoặc nếu ko muốn xài static thì có thể xài một dạng như static là singleton chẳng hạn.

    Tham khảo đoạn code này coi
    Visual C# Code:
    1.     public class Connection
    2.     {
    3.         public Connection()
    4.         {
    5.             //contructor
    6.         }
    7.  
    8.         #region Singleton
    9.         private static Connection me = null;
    10.         public static Connection GetObj()
    11.         {
    12.             if (me == null)
    13.                 me = new Connection();
    14.             return me;
    15.         }
    16.         #endregion
    17.  
    18.         string strConnectionString = "server=SUNFLOWER; Integrated Security=false; uid=sa; pwd=; database=DISKMANAGERMENT;";
    19.         public string ConnectionString
    20.         {
    21.             get { return strConnectionString; }
    22.             set { strConnectionString = value; }
    23.         }
    24.  
    25.         private SqlConnection sqlConnection = new SqlConnection();
    26.         public SqlConnection MyCon
    27.         {
    28.             get
    29.             {
    30.                 if (sqlConnection.State == ConnectionState.Closed || sqlConnection == null)
    31.                 {
    32.                     sqlConnection.ConnectionString = strConnectionString;
    33.                     sqlConnection.Open();
    34.                 }
    35.                 return sqlConnection;
    36.             }
    37.         }
    38.  
    39.         public void OpenConnection()
    40.         {
    41.             if (sqlConnection.State == ConnectionState.Closed || sqlConnection == null)
    42.             {
    43.                 sqlConnection.ConnectionString = strConnectionString;
    44.                 sqlConnection.Open();
    45.             }
    46.         }
    47.  
    48.         public void CloseConnection()
    49.         {
    50.             if (sqlConnection.State == ConnectionState.Open)
    51.             {
    52.                 sqlConnection.Close();
    53.                 sqlConnection.Dispose();
    54.             }
    55.         }
    56.     }

    Muốn gọi các đối tượng trong class đó thì có thể xử lý như sau:
    Visual C# Code:
    1. Connection.GetObj().MyCon //Sẽ lấy ra đối tượng connection

    Nếu viết một vài lớp khác để xử lý thì có thể kế thừa từ lớp connection này để sử dụng các đối tượng và phương thức của nó.

    Good luck!!!

    Gác Kiếm

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

  1. Hướng dẫn lấy địa chỉ IP và các thông tin liên quan
    Gửi bởi tinhthanhiepsi9x trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 27-11-2012, 09:00 PM
  2. Lập trình C vấn đề liên quan đến đặc tả??
    Gửi bởi gyghung trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 18-06-2012, 10:41 PM
  3. Algorithm Gọi delegate từ 2 form con ko liên quan đến nhau ?
    Gửi bởi bibi_1234 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 16-05-2012, 12:59 AM
  4. Các hàm API liên quan đến thư mục ổ đĩa
    Gửi bởi foreverlove trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 01-04-2010, 04:12 AM
  5. Tắt nhiều form không liên quan cùng một lúc trên C# như thế nào..??
    Gửi bởi #include# trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 28-05-2009, 01:21 AM

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