我有两个窗体 我想从第一个窗体把datagrid中的值赋到下个窗体的控件中 使用什么语句 假如:一个窗体是 form1 另外一个是form2 在form一中的一个按钮中我写了这样的代码form2.textbox.Text = ds.Tables[0].Ro
c#中如何从access表中 修改和删除记录啊??
我有两个窗体 我想从第一个窗体把datagrid中的值赋到下个窗体的控件中 使用什么语句 假如:一个窗体是 form1 另外一个是form2 在form一中的一个按钮中我写了这样的代码form2.textbox.Text = ds.Tables[0].Rows[dataGrid1.CurrentCell.RowNumber][2].ToString().Trim();owNumber][2].ToString().Trim();
为什么提示说不是静态变量需要引用之类的??
------解决方案--------------------
------解决方案--------------------CON-如何在子窗体(被调用者)中实现对其父窗体(调用者)的刷新呢?
网络上有几种方法,先总结如下:
调用窗体(父):Form1,被调用窗体(子):Form2
方法1: 所有权法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//在调用Form2时,要把Form2的所有者设为Form1
Form2 f2 = new Form2() ;
f2.Owner = this;
f2.ShowDialog() ;
//Form2:
//在需要对其调用者(父)刷新时
Form1 f1 ;
f1 = (Form1)this.Owner;
f1.Refresh_Method() ;
方法2:自身传递法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
Form2 f2 = new Form2() ;
f2.ShowDialog(this) ;
//Form2:
private Form1 p_f1;
public Form2(Form1 f1)
{
InitializeComponent();
p_f1 = f1;
}
//刷新时
p_f1.Refresh_Method() ;
方法3:属性法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//调用时
Form2 f2 = new Form2() ;
f2.P_F1 = this;
f2.Show() ;
//Form2:
private Form1 p_f1;
public Form1 P_F1
{
get{return p_f1;}
set{p_f1 = value;}
}
//刷新时
p_f1.Refresh_Method() ;
方法4:委托法
//声明一个委托
public delegate void DisplayUpdate();
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//调用时
Form2 f2 = new Form2() ;
f2.ShowUpdate += new DisplayUpdate(Refresh_Method) ;
f2.Show() ;
//Form2:
//声明事件
public event DisplayUpdate ShowUpdate;
//刷新时,放在需要执行刷新的事件里
ShowUpdate();
------解决方案--------------------Form1窗体:
先定义全局静态变量:
public static string strpass = "";
按钮事件:
for(int i=0;i<this.datagrid.RowCount;i++)
{
if(this.datagrid.Rows[i].selected==true)
{
strpass=this.datagrid.Rows[i].cells[0].value.tostring();//取datagrid所选中行的第一个字段值
}
}
Form2窗体:
this.textbox.text=Form1.strpass;//把值给FORM2的textbox