C# ListView 鼠標滑動實現多選
来源:互联网 发布:淘宝宝贝手机连接 编辑:程序博客网 时间:2024/06/03 05:49
protected override void OnMouseMove(MouseEventArgs e)
{
if (IsMousePress)
{
ListViewItem Curentterm=this.GetItemAt(e.X,e.Y);
int Ind = this.Items.IndexOf(Curentterm);
if (Ind < 0)
{
Ind = 0;
}
if(StartInd>-1)
{
if (Ind > StartInd)
{
if (!IsMoveDown)
{
///這點在起始節點上不選,在起始節點下選
if (StartInd < StartMoveInd)
{
this.Items[StartInd].Selected = false;
}
else
{
this.Items[StartInd].Selected = true;
}
}
SelectTerms(StartInd+1, Ind);
StartInd = Ind;
IsMoveDown = true;
}
else if (Ind < StartInd)
{
if (IsMoveDown)
{
if (StartInd > StartMoveInd)
{
this.Items[StartInd].Selected = false;
}
else
{
this.Items[StartInd].Selected = true;
}
}
SelectTerms(Ind, StartInd-1);
StartInd = Ind;
IsMoveDown = false;
}
}
this.Refresh();
}
base.OnMouseMove(e);
}
private void SelectTerms(int Start, int End)
{
if (Start < 0)
{
Start = 0;
}
for(int i=Start;i<=End;i++)
{
if (i == StartMoveInd)
{
this.Items[i].Selected = true;//起始項始終選擇
continue;
}
if (this.Items[i].Selected)
{
this.Items[i].Selected = false;
}
else
{
this.Items[i].Selected = true;
}
}
}
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
IsMousePress = true;
}
ListViewItem Curentterm = this.GetItemAt(e.X, e.Y);
StartInd = this.Items.IndexOf(Curentterm);
StartMoveInd = StartInd;
base.OnMouseDown(e);
}
protected override void OnMouseUp(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
IsMousePress = false;
}
IsMoveDown = true;//默認向下移動
StartInd = -1;
StartMoveInd = -1;
base.OnMouseUp(e);
{
if (IsMousePress)
{
ListViewItem Curentterm=this.GetItemAt(e.X,e.Y);
int Ind = this.Items.IndexOf(Curentterm);
if (Ind < 0)
{
Ind = 0;
}
if(StartInd>-1)
{
if (Ind > StartInd)
{
if (!IsMoveDown)
{
///這點在起始節點上不選,在起始節點下選
if (StartInd < StartMoveInd)
{
this.Items[StartInd].Selected = false;
}
else
{
this.Items[StartInd].Selected = true;
}
}
SelectTerms(StartInd+1, Ind);
StartInd = Ind;
IsMoveDown = true;
}
else if (Ind < StartInd)
{
if (IsMoveDown)
{
if (StartInd > StartMoveInd)
{
this.Items[StartInd].Selected = false;
}
else
{
this.Items[StartInd].Selected = true;
}
}
SelectTerms(Ind, StartInd-1);
StartInd = Ind;
IsMoveDown = false;
}
}
this.Refresh();
}
base.OnMouseMove(e);
}
private void SelectTerms(int Start, int End)
{
if (Start < 0)
{
Start = 0;
}
for(int i=Start;i<=End;i++)
{
if (i == StartMoveInd)
{
this.Items[i].Selected = true;//起始項始終選擇
continue;
}
if (this.Items[i].Selected)
{
this.Items[i].Selected = false;
}
else
{
this.Items[i].Selected = true;
}
}
}
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
IsMousePress = true;
}
ListViewItem Curentterm = this.GetItemAt(e.X, e.Y);
StartInd = this.Items.IndexOf(Curentterm);
StartMoveInd = StartInd;
base.OnMouseDown(e);
}
protected override void OnMouseUp(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
IsMousePress = false;
}
IsMoveDown = true;//默認向下移動
StartInd = -1;
StartMoveInd = -1;
base.OnMouseUp(e);
}
0 0
- C# ListView 鼠標滑動實現多選
- c# listView
- C# ListView
- C# ListView
- C#中的ListView控件
- C# ListView排序
- C# 如何使用LISTVIEW
- C# 之listview
- c# listview ,listbox
- C# ListView分组显示
- C#的ListView
- C# ListView控件使用
- C# ListView(列表视图)
- c# ListView排序
- C# ListView添加DragDrop
- C# listview 用法
- C# ListView的使用
- c# listview 使用方法
- ReactNative实现通知监听事件
- 多源多目标统计信息融合-第二章单目标滤波
- Android数据库代码优化(1)
- HashMap多线程并发问题分析
- AWS EC2中motd文件被覆盖问题
- C# ListView 鼠標滑動實現多選
- WPF: ListBox绑定xml数据
- 《java与模式》之代理模式
- 网站图片优化的几点建议?
- 【java】八数码问题
- Java中类加载机制及反射
- React-Native引用自定义组件类
- Speex AEC
- 程序员面试金典——有向路径检查(图)