ListViewItem.GetSubItemAt(Int32, Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回位于指定坐标位置的 ListViewItem 的子项。
public:
System::Windows::Forms::ListViewItem::ListViewSubItem ^ GetSubItemAt(int x, int y);
public System.Windows.Forms.ListViewItem.ListViewSubItem GetSubItemAt (int x, int y);
public System.Windows.Forms.ListViewItem.ListViewSubItem? GetSubItemAt (int x, int y);
member this.GetSubItemAt : int * int -> System.Windows.Forms.ListViewItem.ListViewSubItem
Public Function GetSubItemAt (x As Integer, y As Integer) As ListViewItem.ListViewSubItem
参数
- x
- Int32
x 坐标。
- y
- Int32
y 坐标。
返回
位于指定的 x 和 y 坐标处的 ListViewItem.ListViewSubItem。
示例
下面的代码示例演示如何使用 GetSubItemAt 方法。 若要运行此代码,请将其粘贴到 Windows 窗体中,并从窗体的构造函数或Load事件处理方法调用 InitializeListView1
。
private ListView listView1;
private void InitializeListView1(){
listView1 = new ListView();
// Set the view to details to show subitems.
listView1.View = View.Details;
// Add some columns and set the width.
listView1.Columns.Add("Name");
listView1.Columns.Add("Number");
listView1.Columns.Add("Description");
listView1.Width = 175;
// Create some items and subitems; add the to the ListView.
ListViewItem item1 = new ListViewItem("Widget");
item1.SubItems.Add(new ListViewItem.ListViewSubItem(item1, "14"));
item1.SubItems.Add(new ListViewItem.ListViewSubItem(item1,
"A description of Widget"));
ListViewItem item2 = new ListViewItem("Bracket");
item2.SubItems.Add(new ListViewItem.ListViewSubItem(item2, "8"));
listView1.Items.Add(item1);
listView1.Items.Add(item2);
// Add the ListView to the form.
this.Controls.Add(listView1);
listView1.MouseDown += new MouseEventHandler(listView1_MouseDown);
}
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);
}
Private WithEvents listView1 As ListView
Private Sub InitializeListView1()
listView1 = New ListView()
' Set the view to details to show subitems.
listView1.View = View.Details
' Add some columns and set the width.
listView1.Columns.Add("Name")
listView1.Columns.Add("Number")
listView1.Columns.Add("Description")
listView1.Width = 175
' Create some items and subitems; add the to the ListView.
Dim item1 As New ListViewItem("Widget")
item1.SubItems.Add(New ListViewItem.ListViewSubItem(item1, "14"))
item1.SubItems.Add(New ListViewItem.ListViewSubItem(item1, "A description of Widget"))
Dim item2 As New ListViewItem("Bracket")
item2.SubItems.Add(New ListViewItem.ListViewSubItem(item2, "8"))
listView1.Items.Add(item1)
listView1.Items.Add(item2)
' Add the ListView to the form.
Me.Controls.Add(listView1)
End Sub
Private Sub listView1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
' Get the item at the mouse pointer.
Dim info As ListViewHitTestInfo = listView1.HitTest(e.X, e.Y)
Dim subItem As ListViewItem.ListViewSubItem = Nothing
' Get the subitem 120 pixels to the right.
If (info IsNot Nothing) Then
If (info.Item IsNot Nothing) Then
subItem = info.Item.GetSubItemAt(e.X + 120, e.Y)
End If
End If ' Show the text of the subitem, if found.
If (subItem IsNot Nothing) Then
MessageBox.Show(subItem.Text)
End If
End Sub
注解
如果 ListView 不在视图中,或者指定点上没有 ,ListViewItem.ListViewSubItem则GetSubItemAt方法将返回 null
Details 。