[Solved] Gọi và gán dữ liệu cho Label từ Form trong Class

Mọi người cho mình hỏi là mình có 1 form có name là frmPlay trong form có label có tên là lblScore, giờ mình có 1 class trong đó có biến int Score mình muốn gán giá trị của biến này vào text của label.

Mình đã khởi tạo form trong class bằng code sau:

frmPlay play=new frmPlay();

và dùng code này để gán giá trị cho text của label:

 play.lblScore.Text = Score.ToString();

nhưng gặp lỗi runtime là khi run nó không chạy frmPlay luôn. Không biết sai ở chỗ nào vậy mọi người tư vấn hộ mình với. :disappointed_relieved:

2 Likes

Tức là bạn muốn Show nó lên??? Bạn thử :

frmPlay play=new frmPlay();
play.lblScore.Text = Score.ToString();
play.Showdialog(); 

mình không show form lên được bạn.

Vậy bạn bị lỗi nào ??? là form không show lên được hay sao bạn ?
hay là show lên được mà k gán text cho lblScore được ?

mình không show form lên được bạn.

mình có hàm show form rồi, chạy ổn

ok, vậy bây giờ bạn thử làm thế này xem.

frmPlay play=new frmPlay();
play.Tag=Score.ToString()
play.Showdialog(); 

Trong form frmPlay, bạn bắt sự kiện FormLoad, trong hàm đó bạn viết :

lblScore.Text =this.Tag.ToString());

mình thử code của bạn nhưng cũng không được, mình xem lại thì mình khởi tạo nhầm vị trí nên nó không show form, giờ form show rồi nhưng không gán text được cho lblScore

2 Likes

Mình đã giải quyết được. Thanks.

2 Likes

Uầy, giải quyết kiểu gì đấy ạ :smiley: , trước em cũng dính lỗi kiểu này nhưng hình như nó liên quan đến cross- thread hay delegate gì đó thì phải

1 Like

mình khởi tạo trong class GameController như vầy:

private frmPlay play=new frmPlay();    
public ABC(frmPlay parent)
 {  play=parent;
    play.lblScore.Text = Score.ToString();
 }

rồi qua bên frmplay khởi tạo class GameController trong frmPlay:

private GameController _gameControl;
void CreateGame
{  
  _gameControl = new GameController(this);
}

Thế là xong. Lúc đầu cũng tưởng dùng delegate hay thread nhưng đơn giản hóa lại thôi.

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