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!

1 Like

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

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

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

Nguồn

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
1 Like

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.

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 :smiley:

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

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

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

index = ListView1.SelectedIndex;

Sau đó

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

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

1 Like
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 à :frowning:

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

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

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;
        }
1 Like

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 :frowning:

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! :frowning:

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);
}

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

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

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 :smiley:

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 :smiley:

2 Likes

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 :frowning:

1 Like

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.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?