Dạ e hiểu r ạ. A cho e hỏi luôn ạ. Sender vó ý nghĩa là gì ạ. E tìm hiểu trên mạng mà k hiểu lắm
Xin đề bài tập lập trình ứng dụng wpf
Trong một sự kiện, hoặc một delegate được phát sinh, sender là đối tượng chứa/tạo ra sự kiện, delegate tương ứng.
Vâng e vẫn ứ hiểu gì luôn
bạn phải tìm mấy cái code example ấy, lấy về chạy đi chạy lại mấy lần , đặt breakpoint debug các kiểu xem từng dòng nó hoạt động thế nào là hiểu liền ngày xưa mình toàn thế. Lý thuyết nhiều cái nó trừu tượng lắm.
Ví dụ khi click vào cái nút thì xuất hiện sự kiện Click. Trong hàm xử lý click có sender và e.
sender chính là cái nút.
e là nội dung liên quan đến sự kiện click.
Giống như gửi mail, sender là địa chỉ người gửi, e là nội dung mail.
Đơn giản, bạn thử đặt sự kiện KeyDown là System.Windows.MessageBox.Show(sender.ToString())
với hoặc là System.Windows.MessageBox.Show(e.Key.ToString())
là hiểu liền mà
Dạ
E thấy họ thường sender 1 cái control nào đó vào 1 biến rồi mới làm tiếp, họ làm trên biến đó luôn. Như thế có phải là cấp quyền truy cập vài control đó k ạ
void HàmSựKiện(object sender, EventAgr e)
là công thức chung. Chẳng hạn Form1 có sự kiện MouseDown nhé:
=>
Form1.MouseDown += ahjhj; //Thường thì khi tạo bằng cách chọn event thì là Form1_MouseDown
void ahjhj(object sender, MouseButtonEventArg e){...}
thì sender là Form1, e là cái sự kiện được ghi lại khi MouseDown xảy ra với Form1
Vâng. Tiện a cho e hỏi cái timer với nuneric của wpf phải tự design ạ
Timer thì đầy ra không phải viết lại.
Còn cái Numeric thì tự design cũng được. Cho nó lạ :))
Cái timer phải dùng dispachtimer phải không ạ
Nếu dùng dispatchtiner thì lại gặp 1 vấn để khá lớn ạ
Vấn đề gì thế ???
Phải build 1 cái tick riêng để nó chạy pk ạ. Cái tick có 1 biến là thời gian
Nếu nhập thời gian vào cái biến đó bằng textbox nó phải convert mà convert thì không hoạt động ở ngoài cái hàm build tick
Nói khó hiểu lắm a. Phải thấy a mới dễ hiểu vấn đề
Quả that là chả hiểu gì @@.
Dùng thấy Timer hay DispatcherTimer đều OK.
DispatcherTimer tim;
void Start(){
tim = new DispatcherTimer(Priority.Background);
tim.Interval = new TimeSpan(0,0,1);
tim.Tick+=Tim_Tick;
tim.Start();
}
int c=0;
private void Tim_Tick(object sender, EventArgs e) {
c++;
this.Title = c.ToString();
}
private void SetTime(){
int sec = 1;
if(int.tryParse(TextBox.Text,out sec)) tim.Interval = new TimeSpan(0,0,sec);
}
Chẳng biết vấn đề nằm ở đâu @@.
E biết ngu ở đâu rồi. E không xài hàm setime a ạ. Mà a ơi phải để setime() trên time_tick chứ
Haizzz. Ngôn ngữ biên dịch thì trước khi thực thi nó nạp tất cả các hàm rồi mới chạy ham main. Trên dưới gì vậy?
Hàm SetTime đó mình chỉ viết ra để thay đổi interval của timer từ giá trị nhập vào một TextBox.
Trong C# nó không yêu cầu tuyệt đối hàm/biến nào phải khai báo trước sau.
a dương ơi e vẫn k làm được ạ
a quẳng file project cho e được không ạ
mò mẫm mãi luôn ạ
đây là 3 loại Timer:
System.Threading.DispatcherTimer
System.Timer.Timer
System.Threading.Timer
Mà diễn đàn không upload được =.=