窗口传递怎么处理,且实时刷新;

kilhorse 2008-01-09 12:34:58
有二个窗口:主窗口,查询条件窗口
主窗口点击查询弹出查询条件窗口,然后键入查询条件,按查询,查询窗口消失,
并将查询结果记录来填充第一个窗口。

我看到以前介绍说用 事件委托,请问如何做,最后能一个完全的实例代码。
...全文
138 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
songxiaozhao 2008-01-10
  • 打赏
  • 举报
回复
你在主窗口 yuanliao_basic 中怎么显示的数据
我举个例子啊,如果你是用sql语句查询的,那么在
查询窗口 yuanliao_condi 的button1_Click中,将查询的语句赋值给sender
public event EventHandler EndSelectData;
private void button1_Click(object sender, EventArgs e)
{
if(EndSelectData!=null)
{
string sql = "select * from table where name like '张%'";
sender = string;
EndSelectData(sender,e);
}
}
你在主窗口 yuanliao_basic
void 查询条件窗口_EndSelectData(object sender, EventArgs e)
{
string sql = (string)sender;
//查询,得到想要的数据,填充控件,显示数据
}
benyouyong 2008-01-09
  • 打赏
  • 举报
回复
事件委托?
有那么复杂嘛?
写个返回DATETABLE类型的get和set就解决了。
pcb_ghl 2008-01-09
  • 打赏
  • 举报
回复
楼主的问题应该就是窗口之间传递值的问题吧.
到网上找一下,很多的.
举个例子:
将你查询窗体中的条件传递回主窗口,然后在主窗体的查询Button事件中
{
查询窗体.Show();
在查询窗体弹出代码后面加上根据查询条件填充你的GridView的代码
}

levenwood 2008-01-09
  • 打赏
  • 举报
回复
把简单的问题搞复杂了~
kilhorse 2008-01-09
  • 打赏
  • 举报
回复
我的主窗口是 yuanliao_basic
private void start_search_Click(object sender, System.EventArgs e)
{ yuanliao_condi frm = new yuanliao_condi();

frm.Icon = this.Icon;
frm.BackColor = this.BackColor;
frm.ShowDialog();
}


查询窗口是 yuanliao_condi
public event EventHandler EndSelectData;
private void button1_Click(object sender, EventArgs e)
{
if(EndSelectData!=null)
{
EndSelectData(sender,e);
}
}




在主窗口中定义查询条件窗口的地方把这个事件引出来,然后在事件中写
void 查询条件窗口_EndSelectData(object sender, EventArgs e)
{
string sql = (string)sender;
//查询,得到想要的数据,填充控件,显示数据
}

具体怎么做啊,本人是个莱鸟不好意思。
changjiangzhibin 2008-01-09
  • 打赏
  • 举报
回复
1、在主窗体放一个存放记录的控件(如GridView、ListView),属性为公有;
2、查询窗体查出结果,关闭,将结果作为数据源传给主窗体的控件,绑定,OK;
赵凯~ 2008-01-09
  • 打赏
  • 举报
回复
属性或静态变量就可以解决
九章落地 2008-01-09
  • 打赏
  • 举报
回复
不需要用到事件/委托这些深奥的东西吧,直接传控件地址便成,如下例:


//在查询窗体(Form2)定义构造函数接收主窗体的DataGridView
DataGridView mainGrid;
public Form2(DataGridView grv)
{
InitializeComponent();
mainGrid = grv;
}



//查询窗体的"查询"按钮,把结果绑定到DataGridView
DataTable dt;
//...假设查询结果存到dt里
grv.DataSource=dt;
this.Close();



//主窗体里如此调用:
Form2 frm=new Form2(dataGridView1);
frm.ShowDialog();


shao99 2008-01-09
  • 打赏
  • 举报
回复
这个不需要用到委托吧,把查询窗口查到的结果返回,然后主窗口填充不就可以了。

如果是两个并列窗口,一个管查询,一个管显示,那可以在查询窗口中将查询结果通知出去,然后显示窗口通过委托接收到通知数据再显示处理。
songxiaozhao 2008-01-09
  • 打赏
  • 举报
回复
委托的高级应用,^_^
songxiaozhao 2008-01-09
  • 打赏
  • 举报
回复
用事件监听吧
在查询条件窗口中定义public event EventHandler EndSelectData;
在查询条件窗口的查询button1事件中
private void button1_Click(object sender, EventArgs e)
{
if(EndSelectData!=null)
{
EndSelectData(sender,e);//sender可以是传给主窗口的参数
}
}
在主窗口中定义查询条件窗口的地方把这个事件引出来,然后在事件中写
void 查询条件窗口_EndSelectData(object sender, EventArgs e)
{
string sql = (string)sender;
//查询,得到想要的数据,填充控件,显示数据
}
试试看吧

111,125

社区成员

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

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

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