乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 63|回复: 3

如何获取MouseClick listItem?

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2022-1-7 10:37:13 | 显示全部楼层 |阅读模式
如何获得鼠标点击列表项目?namespace PaletteMenu。
{。
公共类 MyCommands。
{。
//。
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;。
私有控制[] 控制 = 新控制[8];。
private ListView[] listview = new ListView[8];。
//。
[CommandMethod(“ttt”)]。
public void AddMyPaletteSet()。
{。
var myPaletteSet = new PaletteSet(“Menu”);。
for (int i = 0; i 。
{。
control = new Control(“Group” + i);。
myPaletteSet.Add(“Group” + i, control);。
listview = new ListView();。
列表视图.Dock =DockStyle.Fill;。
列表视图.视图 =视图列表;。
列表视图.BackColor = SystemColors.Control;。
控制.Controls.Add(listview);。
列表视图.BeginUpdate();。
for (int ii = 0; ii 。
{。
ListViewItem lvi = new ListViewItem();。
lvi.ImageIndex = ii;。
lvi.Text = “Button” + ii;。
列表视图.Items.Add(lvi);。
}。
列表视图.EndUpdate();。
列表视图.MouseClick += new MouseEventHandler(MyCommands_MouseClick);。
列表视图.MouseEnter += new EventHandler(MyCommands_MouseEnter);。
列表视图.MouseLeave += new EventHandler(MyCommands_MouseLeave);。
}。

myPaletteSet.Visible = true;。
}。

void MyCommands_MouseLeave(object sender, EventArgs e)。
{。
ListView listview = (ListView)sender;。
列表视图,BackColor = SystemColors.Control;。
}。

void MyCommands_MouseEnter(object sender, EventArgs e)。
{。
ListView listview = (ListView)sender;。
列表视图,BackColor = SystemColors.ControlDark;。
}。

void MyCommands_MouseClick(object sender, MouseEventArgs e)。
{。
if (e.Button == MouseButtons.Left)。
{。
ListView listview = sender as ListView;。
MessageBox.Show(listview.文本);。
//如何获取鼠标点击列表项目 ?。
//编辑,WriteMessage(listview.文本 + “\n”);。
}。
}。

}。
}。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-1-8 09:36:40 | 显示全部楼层
您不会使用鼠标输入[离开,单击]来确定用户是否单击了ListView中的ListViewItem(因此它被选中)。作为一个UI控件,如ListBox,ListView带有专为其功能设计的属性/事件。在识别所选ListViewItem或ListViewItems的情况下,您应该查看诸如:SelectedItems/SelectedDices/CheckedItems/FocusedItem之类的属性以及诸如:SelectedIndexChanged/ItemChecked之类的事件。对于您的代码,您只需要将SelectedIndexChanged事件连接到您创建的每个ListView
我相信您正在探索“概念验证”代码,并且您不会真的用CommandMethod编写UI,是吗?
回复

使用道具 举报

5

主题

16

帖子

1

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-1-9 13:45:49 | 显示全部楼层
您应该使用ListView构建UserControl,并从UserControl处理所有ListView事件/属性/方法
然后,选项板集将处理Autocad的所有事务,用户控件自行负责
类似这样的:https://drive-cad-with-code.blogspot.com/2010/09/pluggable-paletteset.html?m=0
这是一个很好的例子
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2022-1-15 00:46:23 | 显示全部楼层
  公共类MyCommands。
{。
//。
私有编辑器aced =应用程序,document manager . mdiactivedocument . editor;。
private Control[]Control = new Control[8];。
private ListView[]ListView = new ListView[8];。
/// 。
/// AddMyPaletteSet。
/// 。
[command method(" TTT ")]。
public void AddMyPaletteSet()。
{。
PaletteSet myPaletteSet = new PaletteSet(" Menu ");。
myPaletteSet,Style = PaletteSetStyles,ShowAutoHideButton。
for(int I = 0;I 。
{。
control[i] =新控件(" Group "+I);。
myPaletteSet,Add("Group" + i,control[I]);。
ListView[I]= new ListView();。
列表视图[i],Dock =DockStyle,填充;。
列表视图[i],视图=视图,列表;。
列表视图[i],FullRowSelect = true。
列表视图[i],BackColor = SystemColors,控制;。
for(int ii = 0;ii 。
{。
listview[I]. items . add(" Button "+I+"-"+ii);。
}。
列表视图[i],selectedindex changed+=(my commands _ selectedindex changed);//添加事件。
control[I]. controls . add(listview[I]);。
}。
myPaletteSet,可见=真;。
}。
/// 。
///selectedindex changed 。
/// 。
/// 。
/// 。
void my commands _ selectedindex changed(对象发送方,EventArgs e)。
{。
ListView ListView = sender as ListView;//获取listview 。
if (listView,SelectedItems . Count > 0)//已经选择的项目& # 12290;。
{。
string str = listView,选择编辑项目[0],子项[0]。文本;。

}。
}。
}。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 01:14 , Processed in 0.145534 second(s), 60 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表