急急急,A窗体调用B窗体的事件

寂小魔 2012-08-03 10:33:13
A窗体是由B窗体show出来的,传了一个参数(id),
B窗体是一个datagridview 弄了一个右击可以删除的contextMenuStrip1控件 有个DeleteToolStripMenuItem_Click事件用做删除的,我想在A窗体上调用这个事件。求大侠指点

//我要调用这个事件
//B窗体的事件
private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("确认删除该品牌?", "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
{
return;
}
ProductMgr productMgr = new ProductMgr();
int productID = int.Parse(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value.ToString());
int result = productMgr.DeleteProductInfo(productID);
if (result > 0)
{
MessageBox.Show("删除商品信息成功!");
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentCell.RowIndex);
loadProductCategory();
if (LoadDate.productCategoryDataSet != null && LoadDate.productCategoryDataSet.Tables.Count > 0)
dataGridView1.DataSource = LoadDate.productDataSet.Tables[0];
}
else
{
MessageBox.Show("删除商品信息失败!", TooltipInfo.validatInfo());

}
}
//我要在A窗体的button。click事件里调用上面的
private void button17_Click(object sender, EventArgs e)
{
//如何在这里面调用B窗体的那个事件
}
...全文
1243 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bjliuzg 2012-08-23
  • 打赏
  • 举报
回复
A中声明一个public的方法,里面调用 DeleteToolStripMenuItem_Click(object sender, EventArgs e) ,里面的两个参数在你的方法里并没有用到;在B里用 this.Owner实例化A,之后调用A里面的public方法,
之前做过VB的程序,思路应该是这样的,仅供参考!
HULIHONG 2012-08-22
  • 打赏
  • 举报
回复
桌面,窗体 没做过的飘过
luquansen 2012-08-19
  • 打赏
  • 举报
回复
不懂,不过Delphi里面可以通过句柄实现,不知道C#可不可以
Journey31 2012-08-17
  • 打赏
  • 举报
回复
利用一個事件觸發就可以了啊
code_li 2012-08-16
  • 打赏
  • 举报
回复
俩个窗体都添加一个公共变量。。。
在调窗体之前就赋值上去。。。到那个窗体就可以用了 希望可以帮到你
xuan.ye 2012-08-14
  • 打赏
  • 举报
回复
 public partial class Form2 : Form
{
System.Windows.Forms.ToolStripMenuItem but;
public Form2(System.Windows.Forms.ToolStripMenuItem form1buttonToolStripMenuItem)
{
InitializeComponent();


but = form1buttonToolStripMenuItem;
}

private void button1_Click(object sender, EventArgs e)
{
but.PerformClick();
}
}
xuan.ye 2012-08-14
  • 打赏
  • 举报
回复


public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();

}



private void form1buttonToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello Excel!");
}

private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(this.form1buttonToolStripMenuItem);
f.ShowDialog();
}
}
独孤侠客 2012-08-03
  • 打赏
  • 举报
回复
在Form1中定义一个委托

public void Form1_Load()
{
public void delegate tempDelegate(object obj);//可以自己定义想要传的参数,如果是对象可以用object
public tempDelegate MyDelegate;
}

然后在Form2中定义方法DeleteToolStripMenuItem_Click,和挂载委托

public void Form2_Load()
{
Form1 form=new Form1();
Form1.Mydelegate+=new Form1.tempDelegate(DeleteToolStripMenuItem_Click);

}


最后在Form2中需用的时候直接用下面的代码:

if(Mydelegate!=null)
Mydelegate(object);


随手写的,也是菜鸟,可能跟你想要的不一样,但是用委托大概是如此实现的,自己体会下。
Cbirdfly 2012-08-03
  • 打赏
  • 举报
回复
A里定义一个 Action action
dosomething()
{
action();
}

B show A 的时候 A a=new a();
a.action=()=>{DeleteToolStripMenuItem_Click();具体操纵};
引用一下咯
threenewbee 2012-08-03
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110407/19/c1068d69-7331-4d02-bc0b-f5ba7a5f8dd8.html
shizhu820228 2012-08-03
  • 打赏
  • 举报
回复
用委托比较好
yang2948443 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
Show 的时候,把 Show(this) //this即窗体A 传入。

那么A的公开属性都可以访问。
[/Quote]
在B里用 this.Owner 访问A
yang2948443 2012-08-03
  • 打赏
  • 举报
回复
Show 的时候,把 Show(this) //this即窗体A 传入。

那么A的公开属性都可以访问。
失落的神庙 2012-08-03
  • 打赏
  • 举报
回复
在A窗体定义一个静态公共的变量
A窗体用ShowDialog
在B窗体ShowDialog下面判断A窗体那个公共静态变量是否改变
然后执行DeleteToolStripMenuItem_Click(null,null);
寂小魔 2012-08-03
  • 打赏
  • 举报
回复
求解脱。求挣扎、快来人啊。。
nvshenxp 2012-08-03
  • 打赏
  • 举报
回复
对了,这段可以去掉了。点button17(上面我写错了,写成button7了)直接响应绑定的DeleteToolStripMenuItem_Click了。
private void button17_Click(object sender, EventArgs e)
{
//如何在这里面调用B窗体的那个事件
}

偶也是菜鸟,共同学习,你试试看。
nvshenxp 2012-08-03
  • 打赏
  • 举报
回复

// private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)
public void DeleteToolStripMenuItem_Click(object sender, EventArgs e)//把这个函数改成public
//在你的A窗体初始化或者load里面挂载
this.button7.Click += new EventHandler(f2.DeleteToolStripMenuItem_Click);

110,567

社区成员

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

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

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