Form_load C# winform

Em đang code cho sự kiện form_load hiện thông tin của bệnh nhân [0] lên form. Em code vậy không thấy có lỗi nhưng khi chạy thử thì không thấy hiện. Làm ơn giúp em với ạ

//Mong mọi người tìm lỗi giúp em ạ, khi e chạy thử thì form không hiện thông tin j cả
namespace Assignment
{
    public partial class Form1 : Form
    {
        private List <Patient> patients;         
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
            patients = new List< Patient>();
            //create some patients
            Patient john = new Patient("John", "London", 012345678, true, "1/1/1975", 1001);
            Patient marry = new Patient("Marry", "New York", 012345679, false, "8/8/1976", 1002);
            Patient bruce = new Patient("Bruce", "Edinburgh", 012345677, true, "30/1/1985", 1003);
            Patient stephen = new Patient("Stephen", "California", 023456789, true, "10/10/1995", 1004);
            //add to list patient
            patients.Add(john);
            patients.Add(marry);
            patients.Add(bruce);
            patients.Add(stephen);
            //show list patient's info form
            ShowPatient(0);
        }
        private void ShowPatient(int index)
        {
            rbMale.Checked = true;
            rbFemale.Checked = !true;
            txtName.Text = patients[index].Name;
            txtAddress.Text = patients[index].Address;
            txtTelephone.Text = patients[index].Telephone.ToString();
            txtDob.Text = patients[index].DOB;
            txtPatientrecord.Text = patients[index].Patientrecord.ToString();
        }




        
        private void btnAdd_Click(object sender, EventArgs e)
        {
            string name = txtAddress.Text;
            string address = txtAddress.Text;
            int telephone = Int32.Parse(txtTelephone.Text);
            bool gender = rbMale.Checked;
            string dob = txtDob.Text;
            int patientrecord = Int32.Parse(txtPatientrecord.Text);
            Patient newPatient = new Patient(name, address, telephone, gender, dob, patientrecord);
            patients.Add(newPatient);

        }
1 Like

Bạn copy cái đoạn này cho mình xem rõ với. :3 Nghi lỗi đâu đó rồi

2 Likes
'Assignment.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Assignment.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'D:\Work\PROGRAMING\CODE\Assignment\Assignment\bin\Debug\Assignment.exe'. Symbols loaded.
'Assignment.exe' (CLR v4.0.30319: Assignment.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Assignment.exe' (CLR v4.0.30319: Assignment.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Assignment.exe' (CLR v4.0.30319: Assignment.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Assignment.exe' (CLR v4.0.30319: Assignment.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Assignment.exe' (CLR v4.0.30319: Assignment.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Assignment.exe' (CLR v4.0.30319: Assignment.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The program '[12132] Assignment.exe' has exited with code 0 (0x0).

:joy: Ui exit 0 vậy là không có lỗi gì rồi.

Bạn xem có để hàm đóng form ở đâu đó không. Hay kt xem đã run form chưa?

2 Likes

e đã f5 thử đi thử lại r và kết quả nó chỉ thế này


Còn hàm đóng from là gì ạ?

;_; Xin lỗi, bạn up cái hình không mình tưởng nó không chạy chứ không phải là form bị trống.

2 Likes

lần sau e sẽ rút kinh nghiệm khi post bài, e cần rất gấp nên mới tìm đến DNH ngay trong ngày hôm nay. Mong anh/ chị có thể giải đáp thắc mắc của e

1 Like

Mình đang nghi ngờ rằng các giá trị bạn đưa vào bị trống :c

Bạn làm cho mình vài bước để debug nhé

Chuột phải vô tên Project -> Properties -> Tab Build
Tick bỏ chọn Optimize

Sau đó ở dòng txtName.Text = patients[index].Name; bạn tick sao cho nó ra dấu đỏ như hình

F5 lại chương trình sẽ pause ngay dòng đó
rồi nhìn ở khung dưới, bấm vô watch1

Rồi ở cột name gõ lần lượt
patients[index].Name, patients[index].Address, … xem nó ra giá trị nào nhé

2 Likes

ra null vs 0 ạ :((

OK tiếp nè :smiley:
Click vô dấu đỏ lại để tắt cái cũ đi
Sau đó đặt dấu đỏ (breakpoint) ở dòng patients.Add(marry); giúp mình.
Lúc này bạn thử in ra giống nãy luôn

patients[0].Name, patients[0].Address, john.Name, john.Address xem giá trị của nó như thế nào nhé. Nếu là null thì mình đoán là bạn phải xem lại constructor của class Patient xem có gán giá trị chưa nhé

4 Likes

bây h nó còn ko ra cái watch như vừa nãy

tiện thể đây là hàm constructor của e ạ

Xem lại kỹ thiệc kỹ dòng name = Name trong constructor nha. Mình thấy nó sai sai rồi đó :))

Còn để có được watch thì bạn làm như hình nè

4 Likes

e nhiệt tình cảm ơn anh/chị ạ, em biết lỗi ở đâu r. E nghĩ name = Name hay Name =name đều giống nhau ạ. May quá tìm ra kịp

1 Like

Hehe, lần sau cứ đặt breakpoint (cục màu đỏ) và chạy ở debug, xem watch là từ từ ra thôi :smiley:

Tiện thể tìm hiểu thêm mấy nút này nữa khi debug để debug ngon hơn OvOb

Debug mode này

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?