# GÓC SÁNG TẠO > Khu vực lập trình > .NET >  Lấy giá trị từ Combobox gán cho biến int (Help!)

## thanhcanh

^^ có ai bik cách nào để lấy giá trị của combobox gán cho biến Int. 
Vi du: Combobox hiển thị cho ta thấy đc tên sv
khi sự kiện chọn selectIndexchange xảy ra. Mình hem bik cách lấy masv ra như thế nào bạn nào bik chỉ mình với ^^!
yahoo: willclinton_3 -> mail:[email protected]

----------


## inbaongoc007

ComboBox.SelectedText hoặc ComboBox.SlectedItem

----------


## aaronmax

Bạn có thể chỉ mình cụ thể hơn đc hem. Để các bạn khác còn biết nữa. ^^

----------


## hungcnx1989

các lấy giá trị từ combobox thì có nhiều cách.
Nhưng trước tiên bạn phải nói rỏ là trên nền tảng nào chứ: ASP.NET, Windows, WPF. Mà hình như chúng giống nhau cả. Dưới đây là cách mình thường hay làm.
Giả sử ta có nguồn data như sau(List Person)

List<List<Persons>> person= new List<Persons>();

Persons p = new Persons();
p.Id = 10;
p.Name = "Lê Thanh công";
person.add(p);

Persons p = new Persons();
p.Id = 10;
p.Name = "Lê Thanh công";
person.add(p);

----------


## lavendervip

các lấy giá trị từ combobox thì có nhiều cách.
Nhưng trước tiên bạn phải nói rỏ là trên nền tảng nào chứ: ASP.NET, Windows, WPF. Mà hình như chúng giống nhau cả. Dưới đây là cách mình thường hay làm.
Giả sử ta có nguồn data như sau(List Person)

Đây là đoạn code để gán giá trị cho Combobox.

List<List<Persons>> person= new List<Persons>();

Persons p = new Persons();
p.PersonId = 10;
p.PersonName = "Lê Thanh công";
person.add(p);

Persons p2 = new Persons();
p2.PersonId = 11;
p2.PersonName = "Lê Thanh Binh";
person.add(p2);

Combobox1.ItemsSource = person;//(*)
Combobox1.DisplayMemberPath = "PersonName";
Combobox1.SelectedValuePath = "PersonId ";

Đây là đoạn code để Lấy giá trị từ combobox.

int Id = ((Persons)Combobox1.SelectedItem).Id;
hoặc bạn có thể lấy bằng cách này
int Id = int.Parse(Combobox1.SelectedValue.ToString());

Hướng đi là như thế. Bạn thay đổi code cho phù hợp với môi trường làm việc của mình.
Code này mình viết theo WPF còn nếu bạn dùng ASP hay Windows thì đổi dòng có đánh dấu (*) thành
Combobox1.DataSource = person;

----------


## ananhhoang

^^ mình hỉu cách viết của mấy bạn . Hj` mình đang làm winform C# [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] Mình lấy đc giá trị rồi nhưng mình muốn biết lấy giá trị cách nào là nhanh nhất và hiệu quả nhất. Chứ mình làm bình thường Int a =int.Pasrt(combobox.selectvalue.ToString()); 
Nó báo Input string ... fot Fotmat [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] Nói chung là chuyển đổi không chính xác. [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

----------


## ngocquangyb

Bạn dùng List<Object> để đổ dữ liệu vào combobox. Rồi dùng SelectedItem để lấy dữ liệu thì tuyệt đối không bị "Input string was not in format".

----------


## khicaca

> ^^ mình hỉu cách viết của mấy bạn . Hj` mình đang làm winform C# [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] Mình lấy đc giá trị rồi nhưng mình muốn biết lấy giá trị cách nào là nhanh nhất và hiệu quả nhất. Chứ mình làm bình thường Int a =int.Pasrt(combobox.selectvalue.ToString()); 
> Nó báo Input string ... fot Fotmat [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] Nói chung là chuyển đổi không chính xác. [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]


bạn ép kiểu từ text sang int thì nó sẽ mất data là đúng rồi, bạn xem lại chỗ này nha

----------

