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

Đề tài: Cách truyền dữ liệu từ form C# sang user control?

  1. #1
    Ngày gia nhập
    12 2011
    Bài viết
    6

    Mặc định Cách truyền dữ liệu từ form C# sang user control?

    Thân chào các IT !
    - Mình có dùng delegate truyền dữ liệu giữa 2 form cho việc này nhưng vẫn không được.
    - Trong Form1 mình có 1 textbox và 1 button
    Visual C# Code:
    1.         public delegate void Diachi_DuongChangedHandler(string strDuong);
    2.         public Diachi_DuongChangedHandler Diachi_DuongChanged;
    3.  
    4.        
    5.         public string Duong
    6.         {
    7.             get { return this.textBox1.Text; }
    8.             set { this.textBox1.Text = value; }
    9.         }
    10.  
    11.  
    12.         private void button1_Click(object sender, EventArgs e)
    13.         {
    14.             if (Diachi_DuongChanged != null)
    15.                 Diachi_DuongChanged(textBox1.Text);
    16.         }
    - Mình tạo thêm 1 usercontrol có 1 label, sau đó kéo vào form1
    Visual C# Code:
    1.         public string Duong
    2.         {
    3.             get { return this.lbl.Text; }
    4.             set { this.lbl.Text = value; }
    5.         }
    6.         void Duong2Changed(string strDuong)
    7.         {
    8.             this.Duong = strDuong;
    9.         }
    10.         private void UserControl1_Load(object sender, EventArgs e)
    11.         {
    12.             Form1 f = new Form1();
    13.             f.Diachi_DuongChanged += new Form1.Diachi_DuongChangedHandler(Duong2Changed);
    14.         }
    -mình muốn nhập vào text vào textbox trong form1, sau đó click button thì label trong usercontrol sẽ nhận được
    Khi chạy thì dòng Diachi_DuongChanged != null
    Diachi_DuongChanged null
    Nếu truyền giữa 2 form thì được
    Nhưng khi truyền 1 biến dữ liệu từ form sang user control thì ko nhận được !
    Mong các bạn giúp đở !

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

    Visual C# Code:
    1. Form1 f = new Form1();
    2. f.Diachi_DuongChanged += new Form1.Diachi_DuongChangedHandler(Duong2Changed);
    Đối tượng f của Form1 bạn khai báo ở trên đâu có liên quan tới đối tượng của Form1 chứa textBox mà bạn đang nhập? Bạn phải truyền đối tượng mà bạn đang thao tác của Form1 qua UserControl thì mới đc.
    Ví dụ ở Contructor của UserControl
    Visual C# Code:
    1. private Form1 form1;
    2. public UserControl1(Form1 form1){
    3.     this.form1 = form1;
    4.     this.form1.Diachi_DuongChanged += new Form1.Diachi_DuongChangedHandler(Duong2Changed);
    5. }

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

    Mình có một lưu ý các bạn là không được raise event từ form lên "usercontrol con" của nó.
    Tốt hơn bạn nên viết một hàm update label kia.
    public void SetLabel(string input)
    {
    lblABC.text = input;
    }
    sau đó ngoài form, bạn chỉ gọi hàm SetLabel của usercontrol trong sự kiện button click. (khi bạn kéo uc vào form thì nó đã khởi tạo uc này rồi).

  4. #4
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi Fami526 Xem bài viết
    Mình có một lưu ý các bạn là không được raise event từ form lên "usercontrol con" của nó.
    Tốt hơn bạn nên viết một hàm update label kia.

    sau đó ngoài form, bạn chỉ gọi hàm SetLabel của usercontrol trong sự kiện button click. (khi bạn kéo uc vào form thì nó đã khởi tạo uc này rồi).
    Làm kiểu bạn này đi cho nhanh gọn. Tuy nhiên, ko cần thiết phải xài method, chơi properties là được rồi.
    Code:
    public string SetTextLabel
    {
     set { lbTest.Text=value;}
    }
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

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

  1. Graphic Xuất một user control lên form từ 1 user control
    Gửi bởi gialack35 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 23-03-2013, 04:31 PM
  2. Cách truyền giá trị giữa 2 user control C#????
    Gửi bởi virustinhoc trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 13-12-2012, 09:10 AM
  3. click metroTileItem của user control để hiển thị form chính. (user control ở dạng slide)
    Gửi bởi dagulink trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 25-11-2012, 12:08 AM
  4. Graphic xuất user control thành ma trận các control trên form C#?
    Gửi bởi thinhmiss trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 04-05-2012, 04:11 PM
  5. Truyền dữ liệu giữa 2 user control asp.net???
    Gửi bởi hoducson trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 19-06-2010, 08:56 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