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 ạ
Form_load C# winform
//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);
}
Bạn copy cái đoạn này cho mình xem rõ với. :3 Nghi lỗi đâu đó rồi
'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).
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?
;_; 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.
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
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é
OK tiếp nè
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é
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è
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
Hehe, lần sau cứ đặt breakpoint (cục màu đỏ) và chạy ở debug, xem watch là từ từ ra thôi
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