窗口之间通过委托传值监听的问题

独孤侠客 2012-07-09 09:57:52
我本意是通过点击窗口NetChart4中pictureBox的不同位置让另一个窗口DeviceList中的ListView中的不同的对应的选项被选中,也对委托不熟,请高手赐教,不甚感激!
首先我在窗口NetChart4中创建了一个委托:
public partial class NetChart4 : UserControl
{
public NetChart4()
{
InitializeComponent();

}
public delegate void ShowSelectedPoint(object sender);
public event ShowSelectedPoint SelectedPoint;

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (SelectedPoint != null)
{
SelectedPoint("卫星接收机");
}
}
}
然后在窗体DeviceList中监听NetChart4中的事件
public partial class DeviceList : UserControl
{
NetChart4 netChart4;
public DeviceList()
{
InitializeComponent();
netChart4 = new NetChart4();
//监听事件
netChart4.SelectedPoint+=new NetChart4.ShowSelectedPoint(selecedjpg);
}
public void selecedjpg(string str)
{
for (int i = 0; i < this.listView1.Items.Count; i++)
this.listView1.Items[i].Selected = false;
}

}
结果报错:
Error 1 No overload for 'selecedjpg' matches delegate 'Demo.MyControler.NetChart4.ShowSelectedPoint'
请高手解答啊,在线等,谢谢。
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
HesterHan 2012-11-25
  • 打赏
  • 举报
回复
引用 8 楼 cangyue080180 的回复:
引用 7 楼 的回复:引用 6 楼 的回复: 引用 4 楼 的回复: 看不到回复么? 能不能给个思路,怎么实现我的想法或者说是目的啊。 比如图片名称和listView1.Item名称一致,就可以这样写: (至于不同地方选中不同的项,你自己处理,比如可以选择枚举为参数类型,方便区分就好) public delegate void ShowS……
现在怎么样了?我也出现同样的问题!求指点,你解决了吗?
独孤侠客 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

引用 4 楼 的回复:

看不到回复么?

能不能给个思路,怎么实现我的想法或者说是目的啊。

比如图片名称和listView1.Item名称一致,就可以这样写:
(至于不同地方选中不同的项,你自己处理,比如可以选择枚举为参数类型,方便区分就好)
public delegate void ShowSelectedPoint(string send……
[/Quote]
谢谢,跟我的差不多,不过我就是不确定委托建对地方没有,昨晚看了半天也只是懂一点,我再自己找找原因吧。
ohkuy 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:

看不到回复么?

能不能给个思路,怎么实现我的想法或者说是目的啊。
[/Quote]
比如图片名称和listView1.Item名称一致,就可以这样写:
(至于不同地方选中不同的项,你自己处理,比如可以选择枚举为参数类型,方便区分就好)
public delegate void ShowSelectedPoint(string sender);
public event ShowSelectedPoint SelectedPoint;

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (SelectedPoint != null)
{
SelectedPoint(pic.Name);
}
}

public void selecedjpg(string str)
{

this.listView1.Items[str].Selected = true;
}
独孤侠客 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

看不到回复么?
[/Quote]
能不能给个思路,怎么实现我的想法或者说是目的啊。
独孤侠客 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

错误信息不是有么,重载不符,
要求参数类型是object ,
你的是string str
随便改一个就行了,
要一致
[/Quote]
嗯,我也发现了,可是不起作用啊这个委托,不能达到我的目的,就是点击picturBox而listview不能被选中
ohkuy 2012-07-09
  • 打赏
  • 举报
回复
看不到回复么?
独孤侠客 2012-07-09
  • 打赏
  • 举报
回复
高手快来吧。。。。
ohkuy 2012-07-09
  • 打赏
  • 举报
回复
错误信息不是有么,重载不符,
要求参数类型是object ,
你的是string str
随便改一个就行了,
要一致
独孤侠客 2012-07-09
  • 打赏
  • 举报
回复
自己顶啊,在线等,求人给力啊

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧