vozForums
Báo lỗi diễn đàn và theo dõi tình hình khắc phục.

Go Back   vozForums > Máy tính để bàn > Phần mềm > Phát triển Phần mềm


Reply
 
Thread Tools
  #1  
Old 26-06-2012, 19:43
haotoday haotoday is offline
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
Reply With Quote
  #2  
Old 26-06-2012, 20:09
nunkstop nunkstop is offline
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
Reply With Quote
  #3  
Old 26-06-2012, 20:24
taduyanh taduyanh is offline
Senior Member
 
Join Date: 11-2007
Posts: 314
Re: [Help] Thắc mắc C#

Quote:
Originally Posted by haotoday View Post
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.
Reply With Quote
  #4  
Old 26-06-2012, 20:37
haotoday haotoday is offline
K.I.A
 
Join Date: 01-2012
Posts: 19
Re: [Help] Thắc mắc C#

Quote:
Originally Posted by taduyanh View Post
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
Reply With Quote
  #5  
Old 27-06-2012, 08:13
ImLang-NgheThanhPhan ImLang-NgheThanhPhan is offline
K.I.A
 
Join Date: 06-2012
Posts: 8
Re: [Help] Thắc mắc C#

Quote:
Originally Posted by haotoday View Post
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é
Reply With Quote
  #6  
Old 28-06-2012, 11:09
ali5ba ali5ba is offline
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> à?
Reply With Quote
  #7  
Old 28-06-2012, 12:27
LordTNT LordTNT is offline
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...
Reply With Quote
  #8  
Old 28-06-2012, 12:51
ali5ba ali5ba is offline
Member
 
Join Date: 04-2012
Posts: 63
Re: [Help] Thắc mắc C#

Quote:
Originally Posted by LordTNT View Post
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ế
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump





All times are GMT +7. The time now is 02:34.


Steam Powered by vBulletin® 0.1 pre-alpha
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.