多窗口的交互怎么能实现?(C/S) 应用程序

msg198734 2009-03-16 08:44:45
多窗口的交互怎么能实现?
例:
点击按钮,让search窗口show出来,在search窗口中输入字符,然后点击确认,在主窗口中搜索输入的关键字,如何能实现?
希望给为高手指点~ 最好有实例~
...全文
159 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacklee_008 2009-03-16
  • 打赏
  • 举报
回复
up
lchh0917 2009-03-16
  • 打赏
  • 举报
回复
学习了~
wlpsgh 2009-03-16
  • 打赏
  • 举报
回复
学习
lsj_zrp 2009-03-16
  • 打赏
  • 举报
回复
比如在主窗口的RichTextBox中查找
MainMainForm:
private SearchForm asForm;
public MainForm()
{
asForm=new SearchForm();
asForm.Owner=this;
asForm.Hide();
}
点击查找的时候
asForm.Shoe();
asForm.Activate();

SearchForm的查找:
private int FindPlace=0;
if(this.txtSearce.Text.Trim().Length>0)
{
MainForm mainForm=(MainForm)this.Owner;
if(mainForm.RichBox.Text.Length>0)
{
if(FindPlace=mainForm.RichBox.Text.IndexOf(this.txtSearce.Text,FindPlace))==-1)
{
MessageBox.Show("没有找到");
FindPlace=0;
}
else
{
mainForm.RichBox.Select(FindPlace,this.txtSearce.Text.Length);
FindPlace +=this.txtSearce.Text.Length;
mainForm.Active();
}
}
}

SearchForm的取消:
this.Hide();

应该用非模态的窗口,这样才可以查询的时候也操作主界面
手写的,可能有错误
wwb82954323 2009-03-16
  • 打赏
  • 举报
回复
用public属性来传值
POWER_WONG 2009-03-16
  • 打赏
  • 举报
回复
感觉用属性也比较好的
例如你的主窗体名称为frmMain,查找窗体名为frmSearch


在frmSearch中定义一个属性private string getKeyword;
public string GetKeyword
{
set{getKeyword = value;}
get{return getKeyword;}
}

在frmSearch的确定按钮写下事件
private void btnOK_Click(object sender, EventArgs e)
{
getKeyword = edtKeyword.text.Trim();
this.DialogResult = DialogResult.OK;
}

在主窗体frmMain的打开frmSearch的按钮事件中写下事件:
private void btnSearch_Click(object sender, EventArgs e)
{
frmSearch frm = new frmSearch();
if (frm.ShowDialog == DialogResult.OK)
{
string key_word = frm.GetKeyword;
......//其他的操作
}
}
liao5930 2009-03-16
  • 打赏
  • 举报
回复
用委托可以实现
fly_to_sky 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Teng_s2000 的回复:]
Form1 form1=new Form1();
form1.Show();//打开Form1窗体
form1.Form1的属性

可以当成一个类,进行操作
[/Quote]

感觉用属性可以
ztenv 2009-03-16
  • 打赏
  • 举报
回复
那个show出来的是非模态的窗口,
wts_net 2009-03-16
  • 打赏
  • 举报
回复
往子窗体传值可以用带参数的构造函数也可以如楼上所说用public属性。
如果你想在子窗体内输入以后主窗体内直接搜索输入的主 就要用到委托了,如果不是的话 上面两种方法是常用的。
zgke 2009-03-16
  • 打赏
  • 举报
回复
SearchForm _SearchForm =new SearchForm(string p_Text)
_SearchForm.Show();



修改构造SearchForm
SearchForm(string p_SearchText)
{
InitializeComponent();
textBox1.Text=p_SearchText;
}
Teng_s2000 2009-03-16
  • 打赏
  • 举报
回复
Form1 form1=new Form1();
form1.Show();//打开Form1窗体
form1.Form1的属性

可以当成一个类,进行操作
msg198734 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 POWER_WONG 的回复:]
感觉用属性也比较好的
例如你的主窗体名称为frmMain,查找窗体名为frmSearch

在frmSearch中定义一个属性private string getKeyword;
public string GetKeyword
{
    set{getKeyword = value;}
    get{return getKeyword;}
}

在frmSearch的确定按钮写下事件
private void btnOK_Click(object sender, EventArgs e)
{
    getKeyword = edtKeyword.text.Trim();
    this.DialogResult = DialogResult.OK;
}

在主…
[/Quote]
这种方式在Visual C++ 2008 中是不是也同样有效呢?
nnoovvee 2009-03-16
  • 打赏
  • 举报
回复
mark

111,126

社区成员

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

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

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