Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Truyền ngay trong hàm khởi tạo

    FormA
    Mã:
    FormA(int x)
    {
        MessageBox.Show(x.ToString());
    }
    FormB
    Mã:
    void whatever()
    {
       FormA fa = new FormA(10);
       fa.Show();
    }
    Đây là cách ngắn nhất và cũng chẳng hay là mấy =)). Nếu muốn tìm hiểu thêm thì google "C# properties"

  3. #3
    ko nên thêm ở đây

    private void ThemChiTietHangHoa_Load(object sender, EventArgs e)
    {
    Nhaphang n = new Nhaphang();
    n.passData = new Nhaphang.chuyendulieu(nhandulieu);
    }
    khi viết như vầy tức là tạo 1 thể hiện mới cho Class Nhaphang . thể hiện này mới dc gắn delegate PassData vô phương thức 'nhandulieu' chứ thể hiện hiện tại (cái đang chạy) vẫn chưa dc gắn .
    vì vậy passData vẫn null
    Thật ra khi truyền dữ liệu trong trường hợp này chả ai dùng delegate cả
    trong hàm khởi dựng của ThemChiTietHangHoa có thể viết đại khái như vầy


    Mã:
    public ThemChiTietHangHoa (string t1,string t2,string t3,string t4,string t5){            txtmahang.Text = t1;            txttenhang.Text = t2;            txtnhacungcap.Text = t3;            txtgiapnhap.Text = t4;            txtsoluong.Text = t5;}
    và bên class NhapHang


    Mã:
    private void lnkthemchitiet_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)        {            Quanly.ThemChiTietHangHoa tt = new  Quanly.ThemChiTietHangHoa(txtmahang.Text,txttenmathang.Text,            txtnhacungcap.Text,txtgianhap.Text,txtsoluong.Text);            tt.Show();        }
    còn về đọc file txt gì đó


    private void txtmahang_TextChanged(object sender, EventArgs e)
    {
    StreamReader doc = new StreamReader("DanhMucHang.txt");
    string dong = doc.ReadLine();
    while (dong != null)
    {
    string[] a = dong.Split(',');
    txtmahang.AutoCompleteCustomSource.Add(a[0].ToString());
    dong = doc.ReadLine();
    }
    doc.Close();
    doc.Dispose();
    // txttenmathang.Text = a[1].ToString();
    //txtnhacungcap.Text = a[2].ToString();
    //dong = doc.ReadLine();
    }
    viết như vầy có nghĩa là mỗi lần gõ 1 kí tự lên txtmahang thì lại mở file txt lên 1 lần . bạn cần xem lại cơ bản window form trước khi học lên cái khác

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Tiện đây ai ghé qua cho mình hỏi luôn 2 vấn đề này:
    1. Mình có 1 form NhapHang vào 1 form CHiTietHangHoa

    Form nhập hàng có 1 button khi click vào thì show form CHiTietHangHoa lên đồng thời chuyển toàn bộ dữ liệu của 5 textbox sang 5 textbox của form CHiTietHangHoa mà mình làm hoài nó ko chuyển đc.

    code bên NhapHang:
    Mã:
     //Delegate vận chuyển dữ liệu
            public delegate void chuyendulieu(TextBox t1, TextBox t2, TextBox t3, TextBox t4, TextBox t5);
            public chuyendulieu passData;
    
            private void lnkthemchitiet_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
            {
                Quanly.ThemChiTietHangHoa tt = new Quanly.ThemChiTietHangHoa();
                tt.Show();
                if (passData != null)
                {
                    passData(txtmahang, txttenmathang, txtnhacungcap, txtgianhap,txtsoluong);
                }
                
            }
    Đây là code bên CHiTietHangHoa
    Mã:
    public void nhandulieu(TextBox tt1, TextBox tt2, TextBox tt3, TextBox tt4, TextBox tt5)
            {
                txtmahang.Text = tt1.Text;
                txttenhang.Text = tt2.Text;
                txtnhacungcap.Text = tt3.Text;
                txtgiapnhap.Text = tt4.Text;
                txtsoluong.Text = tt5.Text;
            }
    
           private void ThemChiTietHangHoa_Load(object sender, EventArgs e)
           {
               Nhaphang n = new Nhaphang();
               n.passData = new Nhaphang.chuyendulieu(nhandulieu);
           }
    Em làm sai chỗ nào mong m.n gỡ rối dùm em...[IMG]images/smilies/1.gif[/IMG]
    2. Vấn đề thứ 2 đang gặp rắc rối là về load dữ liệu từ file txt, chỉ lấy chuỗi đầu của 1 dòng để add vào AutocompleteCustomSoucre của textbox

    Mã:
    private void txtmahang_TextChanged(object sender, EventArgs e)
            {
                StreamReader doc = new StreamReader("DanhMucHang.txt");
                string dong = doc.ReadLine();
                while (dong != null)
                {
                    string[] a = dong.Split(',');
                    txtmahang.AutoCompleteCustomSource.Add(a[0].ToString());
                    dong = doc.ReadLine();
                }
                doc.Close();
                doc.Dispose();
                       // txttenmathang.Text = a[1].ToString();
                        //txtnhacungcap.Text = a[2].ToString();
                        //dong = doc.ReadLine();
            }
    Khi chạy thì nó báo thế nào ạ

    Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
    Ai đi ngang qua biết cái nào chỉ dùm em ạ, em cảm ơn [IMG]images/smilies/kiss.gif[/IMG]

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi doveandrose
    ...........
    Ủa mình cảm ơn rồi mà ai xóa vậy, tks anh lần nữa[IMG]images/smilies/online.gif[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •