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

Đề tài: Cách lấy dữ liệu hay biến của textbox

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

    Mặc định Cách lấy dữ liệu hay biến của textbox

    Cho mình hỏi (câu hỏi này mình từng thấy có câu hỏi tương tự trong forum nhưng chưa thấy câu trả lời thoả đáng).
    Bài mình làm có 3 form. Form 1 có khung textbox tên là text1. Vậy làm sao cho Form2 và Form3 lấy đc cái biến text1 này. Tại cái biến text1 này đâu có khai báo dạng static đc. Mình vô class designer của form1 sửa private thành
    Code:
    public System.Windows.Forms.TextBox text1;
    mà bên 2 form kia vẫn ko kế thừa đc.
    Mình đọc cái này luôn rồi http://forums.congdongcviet.com/showthread.php?t=4994
    Vẫn ko hiểu.
    Sorry vì mình chưa đc học C# nửa chữ nhưng thầy bắt viết phần mềm login phân quyền cho SQL server bằng C# or VB (VB học kỳ sau mình mới đc học). Cho nên gần như như mình toàn mò.

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

    Ok! Tớ code tạm chút xíu để mô tả dùm cậu vấn đề này. Ở đây tớ chỉ cậu 4 cách sử dụng, thích cách nào thì xài cách đó, còn thích thì tìm cách tối ưu mà dùng.

    Trong lúc code tớ giải thích khá rỏ ràng nên tớ không giải thích lại ở đây, cậu đọc code nha.

    //Tại Form1


    Visual C# Code:
    1.     public partial class Form1 : Form
    2.     {
    3.         public Form1()
    4.         {
    5.             InitializeComponent();
    6.         }
    7.  
    8.         #region Singleton
    9.         static Form1 me = null;
    10.         public static Form1 GetObj()
    11.         {
    12.             if (me == null)
    13.                 me = new Form1();
    14.             return me;
    15.         }
    16.         #endregion
    17.  
    18.         private void btnShowForm2_Click(object sender, EventArgs e)
    19.         {
    20.             //Khởi tạo form2 và truyền form1 này vào constructor, tại form2 sẽ có constructor xử lý để lấy
    21.             Form2 frm = new Form2(this);
    22.             //nếu không muốn truyền thông qua constructor thì có thể chỉ làm như sau:
    23.             //Form2 frm = new Form2();
    24.  
    25.             //Truyền giá trị cho biến frmMain bên form2 có kiểu là Form1 là form này
    26.             //có thể bỏ qua bước này nếu không muốn truyền theo dạng khai báo một đối tượng bên Form2
    27.             frm.frmMain = this;
    28.  
    29.             //truyền giá trị cho biến khai báo trong static, bỏ qua nếu ko muốn cách khai báo này
    30.             StaticClass.txtTest1 = txtTest;
    31.  
    32.             //Show form
    33.             frm.ShowDialog();
    34.         }
    35.     }

    //Tại Form2


    Visual C# Code:
    1.     public partial class Form2 : Form
    2.     {
    3.         public Form2()
    4.         {
    5.             InitializeComponent();
    6.         }
    7.  
    8.         Form1 frmMainCon;
    9.         public Form2(Form1 frm1)
    10.         {
    11.             InitializeComponent();
    12.             frmMainCon = frm1;
    13.         }
    14.  
    15.         public Form1 frmMain;
    16.  
    17.         private void btnSingleton_Click(object sender, EventArgs e)
    18.         {
    19.             //Lấy giá trị thông qua singleton để show
    20.             MessageBox.Show(Form1.GetObj().txtTest.Text);
    21.         }
    22.  
    23.         private void btnConstructor_Click(object sender, EventArgs e)
    24.         {
    25.             //Lấy giá trị khi bên form1 khởi tạo và truyền giá trị vào constructor qua đối tượng frmMainCon: ( =new Form2(this) )
    26.             MessageBox.Show(frmMainCon.txtTest.Text);
    27.         }
    28.  
    29.         private void btnObject_Click(object sender, EventArgs e)
    30.         {
    31.             //Lấy giá trị từ đối tượng khai báo trong form2 này và được truyền khi truyền bởi: frm.frmMain (bên form1)
    32.             MessageBox.Show(frmMain.txtTest.Text);
    33.         }
    34.  
    35.         private void btnStatic_Click(object sender, EventArgs e)
    36.         {
    37.             //Lấy giá trị từ class static đã khai báo
    38.             MessageBox.Show(StaticClass.txtTest1.Text);
    39.         }
    40.     }

    //Static Class
    Visual C# Code:
    1. using System.Windows.Forms;
    2.     static class StaticClass
    3.     {
    4.         //khai báo 1 biến là textbox
    5.         public static TextBox txtTest1;
    6.     }

    Mà tốt nhất cậu nên down demo sau về mà xem.

    Gác Kiếm

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

    Em làm theo theo kiểu singleton. Nhưng nó vẫn chưa bắt đc cái biến text1, hình như nó bắt sai thời điểm hay sao. Lúc em gõ dòng Form1.getobject.text1.Text gõ tới đâu nó hiện ra autocomplete tới đó, chứng tỏ nó hiểu, nhưng ko biết sao nó ko xuất ra đc.
    Cho em hỏi thêm cái. Khi connect vào database ở form1 rồi. Qua form2 nó có còn connect ko vậy anh (?
    Để hiển thị một dòng text (VD chữ done khi load xong một chương trình trong internet explorer) ở thanh status bar mình dùng lệnh gì vậy anh?
    Đã được chỉnh sửa lần cuối bởi TCH : 24-05-2008 lúc 05:17 PM.

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

    Anh ơi em tìm ra vấn đề rồi. Cái kiểu singleton của anh nó bị gì đó. Em VD: Ở phần txtTest1 anh để mặc định là dòng chữ Sunflower, khi em đổi dòng chữ này thành aaa chẳng hạn. Qua form 2, Singleton nó vẫn hiện là Sunflower, trong khi 3 phương pháp còn lại đều hiện ra chữ aaa.
    Ko biết đây có phải là đặc trưng của singleton ko?

  5. #5
    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
    Anh ơi em tìm ra vấn đề rồi. Cái kiểu singleton của anh nó bị gì đó. Em VD: Ở phần txtTest1 anh để mặc định là dòng chữ Sunflower, khi em đổi dòng chữ này thành aaa chẳng hạn. Qua form 2, Singleton nó vẫn hiện là Sunflower, trong khi 3 phương pháp còn lại đều hiện ra chữ aaa.
    Ko biết đây có phải là đặc trưng của singleton ko?
    Àh! Tớ quên một điều với những form được gọi tại class programs.cs thì nó đã khởi tạo ban đầu là form đó rồi. Nên trong form đó ta khai báo một singleton là me=null thì lúc gọi me vẫn =null nên lúc kiểm tra nó sẽ khởi tạo form1 mới. Vì vậy ban đầu phải xác định form1 cho me là lúc nào. Có thể khai báo trong phần show form2 với đổi lại như sau:

    Visual C# Code:
    1.         private void btnShowForm2_Click(object sender, EventArgs e)
    2.         {
    3.             me=this; //thêm dòng này vào
    4.             ...
    5.         }
    Đã được chỉnh sửa lần cuối bởi sunflower : 24-05-2008 lúc 11:27 PM.

    Gác Kiếm

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

    Mặc định Cách lấy dữ liệu hay biến của textbox

    Cho em sau khi tạo lable cho thanh status, dùng hàm gì để hiện thị một text lên thanh status này. Cụ thể là hiển thị staticclass.text1 của em.

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

    Để em tự trả lời cho em, cũng là để cho mấy bạn khác biết.
    Để hiện thị một text ở status ta làm các bước sau:
    -add một label vào status. Đặt tên label đó là label1.
    -Vào hàm loadForm đó. Gán như sau: <tenlabel>.Text=<tên biến text muốn gán>.Text
    VD: ở bài của em sẽ là label1.Text=staticClass.text1.Text;
    Chỉ đơn giản như thế nhưng em phải đi tìm hiểu 3 ngày trời, hỏi rất nhiều người. Và ko đc ai chỉ, vì ai cũng nói nó rất dễ. Đúng là nó dễ thật cái hàm thì dễ nhưng em tìm cái vị trí để đặt cái hàm này vô là một vấn đề.

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

  1. Làm sao biết được Textbox nào đang được Focus ?
    Gửi bởi microchip trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 21-10-2011, 08:11 PM
  2. Làm sao để biết trong TextBox gõ tiếng việt ??
    Gửi bởi nam_dkn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 21-03-2011, 06:00 PM
  3. Câu lệnh lấy giá trị của biến từ textbox trong lập trình C#
    Gửi bởi Deepblue trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 28-02-2011, 11:57 PM
  4. Làm sao để tạo một biến lưu tạm giá tị trên Textbox
    Gửi bởi hvcuongit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 05-02-2010, 05:08 PM
  5. Làm sao để gán biến cho Textbox trên C# ?
    Gửi bởi [h][u][y] trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 25-05-2009, 04:27 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