解决方案 »
- 写了一个简单程序,对继承时派生类数据成员如何在内存分配有些糊涂了
- 获取Http页面,如何处理获取异常
- 赚点分,发个赚分贴
- 怎么将可变的数组的值赋给TEXTBOX,用到TEXTBOX的个数跟数组的维数一样,,
- 在递归算法函数中嵌套foreach,并在foreach中实现暂停,继续
- 急等关于字符串编码问题
- C#多线程问题
- 请问如何设置tabcontrol启动时的tabpage
- 怎样用DataSet实现数据的二次查询功能?(急)
- 怎样获取点击或按下winform上 [×]按钮时的事件
- include包含文件放后台 然后前台取出为何不行?
- winform读取XML报错“未将对象引用设置到对象的实例。”怎么解决
怎么在form2里又show form1呢
直接在form1里
form2 fm2=new form2();
fm2.ShowDialog();//form1不关闭,也不用重新show
刷新dgv
能根据我写的代码,将你所说的大体一i写吗,我水平确实达不到,多谢了 private void btnAdd_Click(object sender, EventArgs e)
{
Form4 frm = new Form4();
frm.callbackaddrow += AddRow;
frm.Show();
} private void AddRow(string s1, string s2)
{
//根据新添加的值,在此处添加到DataGridView
}
public Form4()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
if(InsertSQL())
{
callbackaddrow("新增行第一列值", "新增行第二列值");
}
} //数据库操作
private bool InsertSQL()
{
// ****
return true;
}
定义共有泛型,用于保存从数据库查询到结果的集合:
public BindingList<T_SHIIRESAKIMASTER > lst = new BindingList<T_SHIIRESAKIMASTER >();绑定到 datagridview
datagridview.DataSource = lst ;
form2 时,
你只需在insert提交到数据库后,加入:
T_SHIIRESAKIMASTER tbrd = new T_SHIIRESAKIMASTER();
tbrd.code2 = code ;
......
form1.lst.Insert(0, tbrd);datagridview 内容会自动刷新了。 public class T_SHIIRESAKIMASTER
{
private string _code2 ;
.....
.....
.....
///<summary>
/// 构造函数
///</summary>
public T_SHIIRESAKIMASTER()
{
}
///<summary>
///
///</summary>
public T_SHIIRESAKIMASTER
(
string code2 ,
.....
.....
.....
)
{
this._code2 = code2 ;
.....
.....
.....
} #region 公共属性
public string code2
{
get
{
return _code2;
}
set
{
_code2= value;
}
}
.....
.....
.....
}
dataGridView1的 modifiers设为public
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog(this);
}
]form2中: private void button1_Click(object sender, EventArgs e)
{
Form1 f1 = (Form1)this.Owner;
f1.textBox1.Text = "aaaa";
f1.dataGridView1.DataSource = ds.Tables[0].DefaultView ;
this.Close();
}
private void btnrefresh_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ShowDialog();
//Console.WriteLine(dataGridView1.CurrentCell.ColumnIndex);
//textSHIIRESAKICODE.Text ="" Update(textSHIIRESAKICODE1.Text, txtShiiresakiMei1.Text, System.Net.Dns.GetHostName(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
datasource那里该怎样改?谢谢了,我代码写的这么不好,辛苦您了
再通过查询, try
{
SqlConnection con = new SqlConnection("server =.;database=db_sql;uid=sa;pwd=123");
DataSet ds = new DataSet();
SqlDataAdapter adap = new SqlDataAdapter("select * from student", con);
adap.Fill(ds);
f1.dataGridView1.DataSource = ds.Tables[0].DefaultView; }
catch
{
}
如果你在form1中打开了form2,并且使用了ShowDialog()方法的话,
那么在showdialog()后面就可以加入刷新grideview的代码了。如果不是以上办法,那么使用委托就可以了,在form2实例化以后,传入一个委托的变量并且绑定方法。
在form2关闭时,调用委托的方法,在form1中刷新数据完成后,才会关闭form2.
呵呵 免得 被喷是不一个是我喜欢说话严谨一些,另外就是确实遇到过好几个喷子。
前段时间有几天回帖勤快了点,有人喷:到处都能遇见你,然后就。。,此处省略若干字。确实没有C#,使用delphi起家的。
而那个别人,也是个臭手,代码写的又臭又长,复制粘贴改来改去
而且经常出现不明所以的错误,删了重新来就又好使,简直崩溃了
现在那个破程序也还在用,但是阶段性的就会出现某个窗体再也不好使了的情况
正准备改造的时候全部推翻重来呢.
先谢谢大家了~ 为造福后人,总结一下
我的解决方法如下,可能比较低级,但新手易理解
在form2确认添加按钮下: DialogResult = DialogResult.OK;
在 form1 添加调至form2按钮下:if (f2.ShowDialog() == DialogResult.OK)
{
检索一遍
}
这样就OK了