我正在做一個ListView實驗,並面臨與其選擇矩形問題。我創建了一個Windows窗體應用程序,將2個ListView控件(listView1,listView2)放到Form1上。.Net WinForms。 ListView的選擇矩形如何以編程方式控制?
我設置如下在設計時控件的屬性:
ListView1的:新增3個項目( 「項目1」, 「項目2」, 「項目3」)
listView2:的AllowDrop =真。
我寫代碼來ListView1的拖放項目listView2如下。
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void listView1_MouseDown(object sender, MouseEventArgs e)
{
ListView listView = ((ListView)sender);
ListViewItem listViewItem = listView.GetItemAt(e.X, e.Y);
if (listViewItem != null)
{
listView.DoDragDrop(listViewItem, DragDropEffects.Move);
}
}
private void listView2_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void listView2_DragDrop(object sender, DragEventArgs e)
{
ListView listView = ((ListView)sender);
ListViewItem listViewItem = ((ListViewItem)e.Data.GetData(typeof(ListViewItem)));
listView1.Items.Remove(listViewItem);
listView.Items.Add(listViewItem);
}
}
}
現在我正在運行應用程序並將listView1中的項目拖放到listView2。
在這裏,我鬆開鼠標左鍵。 listView1中的項目成功導出到目標,但在listView1中,選擇矩形正在繪製。
鼠標左鍵被釋放後,我沒有按任何其他鍵,也就是所有的按鈕都在UP狀態,但ListView1的正高興地反應,鼠標移動事件和不斷變化的選擇。
我無法找到一個方法來禁用選擇矩形。我明白它的系統正在做這一切。在我看來,.Net開發人員無法爲此做任何事情。所以我決定問:
.NET開發人員如何以編程方式控制ListView的選擇矩形?
您好!可能是你應該禁用MultiSelect propery? –
這是因爲你已經釋放了第一個ListView中的MouseUp,並且它仍然「在想」MouseUp還沒有開始 –
Capture屬性仍然處於打開狀態。發生,因爲你使用錯誤的事件來做到這一點,改用ListView.ItemDrag。 –