30/09/2018, 19:54

C# SaveFile Và Lấy Giá Trị Từng Cột

Chào Mọi Người!

Mình có một trục trặc nhỏ khi lấy giá trị trên listview!
giá trị ở listview là mình load từ file text lên!

Giờ mình muốn khi click vào cột firstname thì nó hiển thị giá trị firstname, khi click vào cột lastname thì nó hiển thị giá trị lastname

ví dụ:

  • Giờ mình click vào hàng thứ 4 ở cột firstname thì nó sẻ hiển thị Ruby còn click vào cột lastname thì nó hiển thị giá trị Bowers

  • Mình đính kèm link!
    Link Bài Viết Ở congdongcviet

Thân!

Mai Anh Dũng viết 21:55 ngày 30/09/2018

Click lấy nội dung là sao nhỉ. Tiến giải thích cụ thể hơn tí

ListView nó có một attribute là SelectedItems. Tiến thử vọc nó chưa

String text = listView1.SelectedItems[0].Text; 

Nguồn

stackoverflow.com
topofsteel

Get single listView SelectedItem

c#, winforms, listviewitem
asked by topofsteel on 02:19PM - 26 Feb 13
tntien.ecit viết 22:08 ngày 30/09/2018

giá trị ở listview là mình load từ file text lên!

Giờ mình muốn khi click vào cột firstname thì nó hiển thị giá trị
firstname, khi click vào cột lastname thì nó hiển thị giá trị lastname
ví dụ:

  • Giờ mình click vào hàng thứ 4 ở cột firstname thì nó sẻ hiển thị Ruby
    còn click vào cột lastname thì nó hiển thị giá trị Bowers
Mai Anh Dũng viết 22:08 ngày 30/09/2018

Tiến thử cái này xem

String text = listView1.SelectedItems[0].Text;

Đạt đoán SelectedItems là một mảng chứa các cột của dòng được chọn.

tntien.ecit viết 22:07 ngày 30/09/2018

String text = listView1.SelectedItems[0].Text;

Đạt đoán SelectedItems là một mảng chứa các cột của dòng được chọn

nếu SelectedItems[0] thì nó lấy giá trị đầu tiên rồi! mấy cái này Tiến có thử hết!

Tiến có làm thử cho 2 vòng for chạy rồi lấy giá trị tại cột mình click nhưng cũng thất bại

Mai Anh Dũng viết 21:57 ngày 30/09/2018

nếu SelectedItems[0] thì nó lấy giá trị đầu tiên rồi! mấy cái này Tiến có thử hết!

Giá trị đầu tiên của cái gì? Dòng đầu tiên à?

tntien.ecit viết 22:03 ngày 30/09/2018

Là cột đầu tiên đó! Như tiến thì click chổ nào nó cũng lấy giá trị Username

Mai Anh Dũng viết 22:03 ngày 30/09/2018

Nếu vậy thì lấy SelectedIndex trước

index = ListView1.SelectedIndex;

Sau đó

String text = listView1.SelectedItems[index].Text;
tntien.ecit viết 21:55 ngày 30/09/2018

Nếu vậy thì lấy SelectedIndex trước

index = ListView1.SelectedIndex;

Sau đó

String text = listView1.SelectedItems[index].Text;

Nó không có thuộc tính ListView1.SelectedIndex; mà chỉ có là SelectedIndices, SelectedIndexChanged…

tntien.ecit viết 22:06 ngày 30/09/2018
if (listView1.SelectedIndices.Count <= 0)
   return;
int intselectedindex = listView1.SelectedIndices[0];
StatusBar.Text = listView1.Items[intselectedindex].Text;

Như thế này khi click vào column nào nó cũng lấy giá trị đầu tiền à

Mai Anh Dũng viết 21:55 ngày 30/09/2018

Thử với cái index này thử

index = listView1.FocusedItem.Index
String text = listView1.SelectedItems[index].Text;
Interns viết 22:02 ngày 30/09/2018

Giờ mình muốn khi click vào cột firstname thì nó hiển thị giá trị firstname, khi click vào cột lastname thì nó hiển thị giá trị lastname

Mình cho bạn dòng code này bạn chạy thử xem nó ra cái gì thì bạn sẽ áp dụng được cho bài toán của bạn

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            textBox1.Text = listView1.Items[0].SubItems[1].Text;
        }
tntien.ecit viết 22:09 ngày 30/09/2018

Thử với cái index này thử

index = listView1.FocusedItem.Index
String text = listView1.SelectedItems[index].Text;

Nó vẫn lấy giá trị đầu tiên! Ví dụ click hàng nào thì nó lấy giá trị đầu Đạt ơi

tntien.ecit viết 22:09 ngày 30/09/2018

Mình cho bạn dòng code này bạn chạy thử xem nó ra cái gì thì bạn sẽ áp dụng được cho bài toán của bạn

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = listView1.Items[0].SubItems[1].Text;
}

Cái này thì nó lấy giá trị cột thứ 2 vì SubItems[1] cái này mình cũng đã có thử rồi bạn!

buithaiminh viết 22:01 ngày 30/09/2018

Thử cái này:

void listView1_MouseDown(object sender, MouseEventArgs e)
{
    // Get the item at the mouse pointer.
    ListViewHitTestInfo info = listView1.HitTest(e.X, e.Y);

    ListViewItem.ListViewSubItem subItem = null;

    // Get the subitem 120 pixels to the right.
    if (info != null)
        if (info.Item != null)
            subItem = info.Item.GetSubItemAt(e.X + 120, e.Y);

    // Show the text of the subitem, if found.
    if (subItem != null)
        MessageBox.Show(subItem.Text);
}
tntien.ecit viết 21:55 ngày 30/09/2018

Bạn thử làm theo cách này xem :

http://daynhauhoc.com/t/lay-gia-tri-cua-mot-cot-trong-listview/22059

Không có quyền truy cập vào bạn ơi!

Phạm Hoàng Tuấn viết 22:10 ngày 30/09/2018

Vậy bạn tham khảo cái này xem :

stackoverflow.com
user2006506

Getting value from listview control

c#
asked by user2006506 on 01:05PM - 05 Feb 13

tntien.ecit viết 22:04 ngày 30/09/2018

Trước tiên Tiến Cảm ơn tất cả A/E đã giúp đở Tiến!
Lấy giá trị từng column Tiến làm okie rồi!
Code của nó cho ae nào làm thì tham khảo

private void listView1_Click(object sender, EventArgs e)
{
       Point mousePosition = listView1.PointToClient(Control.MousePosition);
       ListViewHitTestInfo hit = listView1.HitTest(mousePosition);
       int columnindex = hit.Item.SubItems.IndexOf(hit.SubItem);
       StatusBar.Text = listView1.SelectedItems[0].SubItems[columnindex].Text;
}

Giờ chỉ còn ngồi mò cái Save nữa

tntien.ecit viết 22:09 ngày 30/09/2018

Có AE nào hướng cái save cho Tiến với không? không biết phải làm thế nào để lấy đường dẫn file đang mở hiện tại trên listview để save nội dung nữa

Văn Dương viết 22:10 ngày 30/09/2018

Khi đọc nó thì bạn ghi lại đường dẫn. Lúc lưu thì lấy đường dẫn đó ra dùng.

tntien.ecit viết 22:03 ngày 30/09/2018

Khi đọc nó thì bạn ghi lại đường dẫn. Lúc lưu thì lấy đường dẫn đó ra dùng

Thanks Bạn! Đơn giản là cho path vào biến temp rồi truyền vào thằng wirte mà làm mãi không được! giờ thì đã okie rồi

Bài liên quan
0