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窗体的那个事件
}
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窗体的那个事件
}
解决方案 »
- 求助:combobox选择一个值,将值显示在textbox中,如何实现多次选择的结果都显示在其中
- c#窗体程序读取txt文件中的点坐标,把它存到一个数组中,以后要对这些点进行操作。读取这些点以后,要在窗体程序中运行一下能够显示出来。
- C#EXCEL导出合并问题
- 可是当输入5!=?就没有输出.??
- Visual Studio 2005 Version 选择,高分!
- 关于Console.WriteLine();的疑问?请高手帮忙!
- 我要实现一个网站消息智能提醒的功能!大家给点意见!!
- vs2008中拖动datagridview的字段头显示有叠影
- C#(WinForm)中For循环自动打开某个网页怎么做呢?
- 怎样给dll加密不被反编译出?
- C# 多个目录搜索文件,并找出最近修改的一个文件
- c# 根据NetServerEnum可以获取IP Mac么 目前可以获取机器名
A窗体用ShowDialog
在B窗体ShowDialog下面判断A窗体那个公共静态变量是否改变
然后执行DeleteToolStripMenuItem_Click(null,null);
dosomething()
{
action();
}B show A 的时候 A a=new a();
a.action=()=>{DeleteToolStripMenuItem_Click();具体操纵};
引用一下咯
{
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);
随手写的,也是菜鸟,可能跟你想要的不一样,但是用委托大概是如此实现的,自己体会下。
// 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);
private void button17_Click(object sender, EventArgs e)
{
//如何在这里面调用B窗体的那个事件
}偶也是菜鸟,共同学习,你试试看。
{
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();
}
}
{
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();
}
}
之前做过VB的程序,思路应该是这样的,仅供参考!