PDA

View Full Version : Hỏi đáp Giúp winform c# với !!!



Boy...
02-12-2011, 07:36 PM
Mình đang làm bài tập c# với control listview nhưng không biết cách làm button "lưu" và "cập nhật" như thế nào...
Mọi người giúp mình nhé !!!

binhcaolinh
02-12-2011, 07:49 PM
Bạn hãy ghi rõ cái đề ra đc ko?
Giả sử cái listview của bạn tên là listview1: Mún tạo code cho button "thêm" thì bạn dùng code: listview1.Items.Add("...");
còn cái button lưu là sao thì mình chưa rõ.

chip
02-12-2011, 08:04 PM
Mình đang làm bài tập c# với control listview nhưng không biết cách làm button "lưu" và "cập nhật" như thế nào...
Mọi người giúp mình nhé !!!
--->"lưu" là lưu vào đâu?
--->"cập nhật" là cập nhật cái gì?
---->Sao cứ đưa ra vấn đề không rõ đầu đuôi vậy.

Boy...
04-12-2011, 03:46 PM
--->"lưu" là lưu vào đâu?
--->"cập nhật" là cập nhật cái gì?
---->Sao cứ đưa ra vấn đề không rõ đầu đuôi vậy.
Lưu tức là in ra file text hay word gì đó...
Cập nhật tức là cập dữ liệu sau khi sữa listview
Sr vì đã k nêu rõ

SPD
05-12-2011, 09:47 PM
đầu tiên, tạo nút cập nhật(mình đặt tên là btnCapnhat), ấn F4 chọn visible = false.
tại lớp public partial class Form1 : Form tạo 2 biến bool capnhat = false; và int chisolistview = -1;

tại nút sửa (kích đúp chuột vào nút sửa).

gán:
btnCapnhat.Visible = true;
capnhat = true;


tại nút cập nhật:
if(capnhat)
{
chisolistview = listView1.SelectedItems[0].Index;
copy nguyên đoạn mã của nút thêm (trừ đoạn mã listView1.Items.Add(item), nếu không thì sẽ không làm được nút này)
rồi gõ
listView1.Item[chisolistview] = item;
listView1.Update();
}

toanit0392
05-12-2011, 10:49 PM
cho mình hỏi khai báo int chisolistview = -1; roi sau đó cho nó =0., co ý nghĩa gì vậy, minh cho int chisolistview = -1 thay bằng=2,3,4...,thậm chí không cho nó giá trị nào thì chương trình vẫn chạy đúng bình thường mà , không hiểu?|-) hãy giải thích dùm mình nhé ,thank

SPD
06-12-2011, 10:58 AM
cái này mình nghe thầy mình nói là chisolistview phải gán bằng -1 vì giá trị nhỏ nhất của nó là 0. Mình cũng không nhớ rõ nữa

Boy...
06-12-2011, 11:11 AM
cám ơn SPD, mình đã làm được phần cập nhật, bạn có thể giúp mình phần ''Lưu" được ko ?? Tks bạn !

Boy...
06-12-2011, 11:12 AM
cám ơn SPD, mình đã làm được phần cập nhật, bạn có thể giúp mình phần ''Lưu" được ko ?? Tks bạn !<br>

SPD
06-12-2011, 01:02 PM
cám ơn SPD, mình đã làm được phần cập nhật, bạn có thể giúp mình phần ''Lưu" được ko ?? Tks bạn !<br>
trước khi nói cho bạn nút lưu thì mình cũng muốn sửa lại một chút về nút cập nhật
đầu tiên, tại nút cập nhật bạn gõ thêm:
if(capnhat)
{
(Đưa toàn bộ câu lệnh tại nút cập nhật vào đây.)
}
thế thôi

còn nút lưu thì bạn làm như sau:
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.View = View.Details;

listView1.Columns.Clear();
listView1.Items.Clear();

listView1.Columns.Add(new ColumnHeader()); //tạo cột, riêng câu lệnh này lặp lại nhiều lần, khi nào số câu lệnh bằng số cột cần tạo là dừng.
listView1.Clolums[0].Text = "chữ bạn cần gõ"; //đây là câu lệnh để tạo tiêu đề cho cột, các câu sau cũng tương tự nhưng con số 0 được thay bằng số 1,2,3 cho đến khi số đó bằng số cột bạn đã tạo - 1 thì thôi gõ;
}
nút thêm:
private void button1_Click(object sender, EventArgs e)
{
ListViewItem item = new ListViewItem();
item.Text = textBox1.text;// tùy đối tượng để add, ở đây mình dùng text box
item.SubItems.Add(textBox2.Text);
listView1.Items.Add(item);
}
Phức tạp thế thôi chứ xem hình thì đơn giản lắm
Only the registered members can see the link (Only the registered members can see the link)Only the registered members can see the link (Only the registered members can see the link)Only the registered members can see the link (Only the registered members can see the link)

Boy...
06-12-2011, 03:01 PM
trước khi nói cho bạn nút lưu thì mình cũng muốn sửa lại một chút về nút cập nhật
đầu tiên, tại nút cập nhật bạn gõ thêm:
if(capnhat)
{
(Đưa toàn bộ câu lệnh tại nút cập nhật vào đây.)
}
thế thôi

còn nút lưu thì bạn làm như sau:
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.View = View.Details;

listView1.Columns.Clear();
listView1.Items.Clear();

listView1.Columns.Add(new ColumnHeader()); //tạo cột, riêng câu lệnh này lặp lại nhiều lần, khi nào số câu lệnh bằng số cột cần tạo là dừng.
listView1.Clolums[0].Text = "chữ bạn cần gõ"; //đây là câu lệnh để tạo tiêu đề cho cột, các câu sau cũng tương tự nhưng con số 0 được thay bằng số 1,2,3 cho đến khi số đó bằng số cột bạn đã tạo - 1 thì thôi gõ;
}
nút thêm:
private void button1_Click(object sender, EventArgs e)
{
ListViewItem item = new ListViewItem();
item.Text = textBox1.text;// tùy đối tượng để add, ở đây mình dùng text box
item.SubItems.Add(textBox2.Text);
listView1.Items.Add(item);
}
Phức tạp thế thôi chứ xem hình thì đơn giản lắm
Only the registered members can see the link (Only the registered members can see the link)Only the registered members can see the link (Only the registered members can see the link)Only the registered members can see the link (Only the registered members can see the link)

Đây là Thêm mà bạn, chứ có phải lưu đâu???
Hay bạn share cho mình cái Form trên đi !!!

SPD
06-12-2011, 04:28 PM
Mình xóa rồi bạn ơi
mà trên cái form đó nút lưu của mình chính là nút cập nhật, không phải nút lưu bạn nói :D, còn nút lưu mà bạn muốn nói thì viết như sau:
Đầu tiên, tạo không gian tên: using System.IO;(Bước này không thể bỏ qua).
tại nút Lưu:
FileStream fs = new FileStream("C:\\Thong_tin.txt", FileMode.Append, FileAccess.Write);
StreamWriter st = new StreamWriter(fs);
st.Write("Họ tên: ");
st.Write(textBox1.Text);
st.Write(";");
st.Write("Lớp");
st.Write(textBox2.Text);
st.Write(".");
st.Flush();
st.Close();
MessageBox.Show("Lưu lại thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

Boy...
06-12-2011, 06:54 PM
thật tốt quá , cám ơn bạn nhìu nhìu, nhưng ko biết thường thì đề thi bắt lưu ntn nhỉ???

SPD
06-12-2011, 09:15 PM
Mình cũng ko biết, chắc là lưu vào ListView. Mà nói thật, mình cũng lo môn này lắm

toanit0392
06-12-2011, 09:53 PM
cho mình hỏi
listView1.View = View.Details;
listView1.View = View.Details;
hai câu lệnh này có mục đích gì vậy
.Details là sao nhỉ ,\
mình ko hiểu , giải thích cho mình với
thank ,nhanh nha !

toanit0392
06-12-2011, 09:55 PM
st.Flush();. có nghĩa là gì vậy bạn , giải thích dùm mình với,thank !

SPD
06-12-2011, 10:16 PM
Flush() - Xóa tất cả các vùng đệm mà Writer đang nắm giữ.

toanit0392
07-12-2011, 02:16 PM
listView1.View = view.Detail;
listView1.View = view.Detail;
có nghĩa gì vậy ,tại sao dùng 2 câu mà không là môt số khác nhỉ...
giải thích dùm mình tí, nhiều bạn thắc mắt chỗ đó lắm đó....
nhanh nha,,,

toanit0392
07-12-2011, 02:19 PM
mà câụ tên gì vay nhỉ mình muốn trao đổi môt chút đươc ko

Boy...
07-12-2011, 02:20 PM
listView1.View = view.Detail;
listView1.View = view.Detail;
có nghĩa gì vậy ,tại sao dùng 2 câu mà không là môt số khác nhỉ...
giải thích dùm mình tí, nhiều bạn thắc mắt chỗ đó lắm đó....
nhanh nha,,,

Cái này là xem listview theo kiểu detail đó mà bạn, xem được cả các cột nữa...

toanit0392
07-12-2011, 02:28 PM
strWrite= File.AppendText(filename);
lệnh này có nghĩa là gì nhỉ,
ai biết giải thich dùm cái .thank!

SPD
07-12-2011, 04:24 PM
Cái này là xem listview theo kiểu detail đó mà bạn, xem được cả các cột nữa...
cảm ơn boy đã đỡ đòn

SPD
07-12-2011, 04:26 PM
strWrite= File.AppendText(filename);
lệnh này có nghĩa là gì nhỉ,
ai biết giải thich dùm cái .thank!
lệnh này nghe lạ hoắc

Boy...
07-12-2011, 06:50 PM
cảm ơn boy đã đỡ đòn

Hi, ko có gì, cậu có vẽ học khá môn này nhỉ...

SPD
07-12-2011, 06:54 PM
ko, mình cũng kém lắm, còn thua nhiêu người

Boy...
08-12-2011, 04:50 PM
Tks bạn đã giúp, có thể hướng dẫn mình làm nút open lun đc ko (Mở file text mình đã lưu ấy)..Tks nhìu !!!
Mình làm như thế này :

private void moToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Text file (*.txt)|*.txt| Word Document (*.doc)|*.doc| All file (*.*)| *.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
filename = openFileDialog1.FileName;
this.Text = filename;
StreamReader fs = new StreamReader(Application.StartupPath + "\\test.txt");
while (!fs.EndOfStream)
{
string doctungodng = fs.ReadLine();
string[] mang = doctungodng.Split('\t');
ListViewItem lvi = new ListViewItem(mang[0]);
lvi.SubItems.Add(mang[1]);
lvi.SubItems.Add(mang[2]);
listView1.Items.Add(lvi);
}
Nó bị lỗi con trỏ ở dòng màu đỏ ???

toanit0392
08-12-2011, 05:31 PM
mình cũng đang thắc mắt về chỗ đó đây,minh vừa học xong nhưng làm chưa được nó bị lỗi chỗ đó .ai biết chỉ dùm với...thank.....

toanit0392
08-12-2011, 05:41 PM
while (!fs.EndOfStream)
lệnh này là sao nhi..
giải thích dùm với các huynh đệ..thank..

toanit0392
08-12-2011, 05:45 PM
lệnh này có nghĩa là : mở một tập tin mới và tập tin này có được thêm nội dung văn bản vào đó.Tạo luồng StreamWriter sử dụng để thêm nội dung vào văn bản đó.

toanit0392
08-12-2011, 05:51 PM
strWrite= File.AppendText(filename);
lệnh này có nghĩa là gì nhỉ,
ai biết giải thich dùm cái .thank!dấdasdadad