 |

26-06-2012, 19:43
|
|
K.I.A
|
|
Join Date: 01-2012
Posts: 19
|
|
|
[Help] Thắc mắc C#
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace NikoLai
{
public partial class frmModule1_6 : Form
{
public frmModule1_6()
{
InitializeComponent();
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnSave_Click(object sender, EventArgs e)
{
if(txtDKCB.Text == "")
{
MessageBox.Show("Số đăng ký cá biệt không được rỗng!", "Cảnh Báo",MessageBoxButtons.OK);
}
else if (txtTenSach.Text == "")
{
MessageBox.Show("Bạn chưa nhập tên sách!", "Cảnh Báo", MessageBoxButtons.OK);
}
else
{
lstDanhSach.Items.Add(txtDKCB.Text);
txtDKCB.AutoCompleteCustomSource.Add(txtDKCB.Text);
txtTenSach.AutoCompleteCustomSource.Add(txtTenSach.Text);
txtNhaXB.AutoCompleteCustomSource.Add(txtNhaXB.Text);
txtNoiXB.AutoCompleteCustomSource.Add(txtNoiXB.Text);
lstDanhSach.Tag = Convert.ToString(lstDanhSach.Tag) + txtNhaXB.Text + "&" + txtTenSach.Text + "&" + txtNoiXB.Text + "@";
txtDKCB.Text = "";
txtTenSach.Text = "";
txtNhaXB.Text = "";
txtNoiXB.Text = "";
txtDKCB.Focus();
}
}
private void lstDanhSach_SelectedIndexChanged(object sender, EventArgs e)
{
//textBox1.Text = lstDanhSach.SelectedItem.ToString();
txtDKCB.Text = lstDanhSach.SelectedItem.ToString();
List<string> lstCols = Convert.ToString(lstDanhSach.Tag).Split('@').ToList<string>();
List<string> lstTextBox = lstCols[lstDanhSach.SelectedIndex].Split('&').ToList<string>();
txtNhaXB.Text = lstTextBox[0];
txtTenSach.Text = lstTextBox[1];
txtNoiXB.Text = lstTextBox[2];
}
}
}
ae giải thích giùm e 1 chút về cái đoạn bôi xanh trên.
cái <string> trong List<string> lstTextBox là gì, rồi cái @ có tác dụng như thế nào.
Cái đoạn lstTextBox[0], [1], [2] đó có phải là mình phải tạo 3 cái listbox k0
|

26-06-2012, 20:09
|
|
K.I.A
|
|
Join Date: 07-2010
Location: \./\./
Posts: 1,441
|
|
|
Re: [Help] Thắc mắc C#
mình không học C#, nhưng nghĩ cú pháp chắc giống nhau cả thôi, cái split("@") thì nếu có string abc@def@ghi thì nó split thành array có 3 chuỗi con, abc, def, ghi
|

26-06-2012, 20:24
|
|
Senior Member
|
|
Join Date: 11-2007
Posts: 314
|
|
|
Re: [Help] Thắc mắc C#
Quote:
Originally Posted by haotoday
ae giải thích giùm e 1 chút về cái đoạn bôi xanh trên.
cái <string> trong List<string> lstTextBox là gì, rồi cái @ có tác dụng như thế nào.
Cái đoạn lstTextBox[0], [1], [2] đó có phải là mình phải tạo 3 cái listbox k0 
|
Cái List<string> có nghĩa là List của bạn bao gồm có các phần tử là string, trong hàm định nghĩa List họ sử dụng Generic (kí hiệu là T - List<T>) với mục đích là cái List này có thể áp dụng cho mọi loại dữ liệu, và loại dữ liệu nào sẽ được xác định khi sử dụng, ví dụ List<string> là danh sách các string, List<A> là danh sách các đối tượng A, nên đọc thêm về generic để hiểu cho sâu.
@ là đối số của hàm split nhằm mục đích chia một chuỗi string thành các chuỗi string nhỏ với dấu hiệu là @, ví dụ "abc@def".split('@') sẽ trả về 2 chuỗi là abc và def.
Sử dụng split().toList<string> trả về 1 List<string> là 1 mảng gồm các string, gọi lstTextBox[0], [1], [2] là gọi đến phần tử thứ 1, 2, 3 trong cái mảng đấy.
|

26-06-2012, 20:37
|
|
K.I.A
|
|
Join Date: 01-2012
Posts: 19
|
|
|
Re: [Help] Thắc mắc C#
Quote:
Originally Posted by taduyanh
Cái List<string> có nghĩa là List của bạn bao gồm có các phần tử là string, trong hàm định nghĩa List họ sử dụng Generic (kí hiệu là T - List<T>) với mục đích là cái List này có thể áp dụng cho mọi loại dữ liệu, và loại dữ liệu nào sẽ được xác định khi sử dụng, ví dụ List<string> là danh sách các string, List<A> là danh sách các đối tượng A, nên đọc thêm về generic để hiểu cho sâu.
@ là đối số của hàm split nhằm mục đích chia một chuỗi string thành các chuỗi string nhỏ với dấu hiệu là @, ví dụ "abc@def".split('@') sẽ trả về 2 chuỗi là abc và def.
Sử dụng split().toList<string> trả về 1 List<string> là 1 mảng gồm các string, gọi lstTextBox[0], [1], [2] là gọi đến phần tử thứ 1, 2, 3 trong cái mảng đấy.
|
Thực, vẫn chưa hiểu lắm,  vì cái bài này nó sử dụng nhóm các thuộc tính về Autocomplete nên e nhìn vao hơi loạn mắt
|

27-06-2012, 08:13
|
|
K.I.A
|
|
Join Date: 06-2012
Posts: 8
|
|
|
Re: [Help] Thắc mắc C#
Quote:
Originally Posted by haotoday
Thực, vẫn chưa hiểu lắm,  vì cái bài này nó sử dụng nhóm các thuộc tính về Autocomplete nên e nhìn vao hơi loạn mắt
|
Nó là 1 tập hợp các phần tử có kiểu string. Mỗi kiểu tập hợp thì có phuwong thức của tập hợp đó
List<class T> . 1 List các phần tử là đối tượng thuộc class T
Stack<class T> .. 1 stack .................
Queue<class T> ...............
Vân vân
và nhiều thứ nữa 
Cái này bạn vào msdn microsoft đọc 1 tí rồi làm vài ví dụ nữa là hiểu thôi nhé
|

28-06-2012, 11:09
|
|
Member
|
|
Join Date: 04-2012
Posts: 63
|
|
|
Re: [Help] Thắc mắc C#
cái code thì dở mà cũng tham khảo.
Quote:
|
lstDanhSach.Tag = Convert.ToString(lstDanhSach.Tag) + txtNhaXB.Text + "&" + txtTenSach.Text + "&" + txtNoiXB.Text + "@";
|
lúc fill list nó dùng Tag để lưu 3 cái textbox
lúc sau nó lấy dữ liệu từ list ra thì lấy qua cái Tag đó.
- nó là kiểu string
- dùng hàm split để tách ra thành 3 string
- đổ vào mảng List<string>
- lấy dữ liệu từ mảng lstTextBox đổ lại ngược vào textbox
- bác chưa học List<T> à?
|

28-06-2012, 12:27
|
|
Member
|
|
Join Date: 03-2012
Posts: 65
|
|
|
Re: [Help] Thắc mắc C#
tại sao phải dùng List khi mà split là ra array đủ xài cho cái code trên rồi :| Đâu có append thêm cái gì đâu mà sử dụng list chi cho phức tạp ~.~
List xài như array thôi, syntax khác (dài dòng hơn) tí xíu...
|

28-06-2012, 12:51
|
|
Member
|
|
Join Date: 04-2012
Posts: 63
|
|
|
Re: [Help] Thắc mắc C#
Quote:
Originally Posted by LordTNT
tại sao phải dùng List khi mà split là ra array đủ xài cho cái code trên rồi :| Đâu có append thêm cái gì đâu mà sử dụng list chi cho phức tạp ~.~
List xài như array thôi, syntax khác (dài dòng hơn) tí xíu...
|
các thầy dạy thế
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|