操作-VC++ 主窗口与子窗口ListCtrl传值(有文字有整数,列表形式)

问题描述

VC++ 主窗口与子窗口ListCtrl传值(有文字有整数,列表形式)
在主窗口(父窗口)类中定义一个数据成员,用于实时更新ListCtrl的内容,当执行添加或者删除操作时,对应着更新这个数据成员。执行查找操作时,将主窗口的这个数据成员的指针传递给查找窗口(子窗口)对应的类中(在查找类中定义一个对应类型的数据成员指针),那么取数据时直接用的主窗口的实时数据。
现在遇到相同的问题,有些不太明白,恳请大虾贴出上述方法的具体代码,谢谢啦!

解决方案

使用委托与事件,如果是使子窗体中的内容·随父窗体的变化的话,则(FrmMX是父窗体,frmProductCert是子窗体)
第一步:
先在父窗体中定义委托与事件
public partial class FrmMX : Form
{
public delegate void frmProductCert(string sReport);
public event frmProductCert Bind;

第二步:
在子窗体中创建父窗体的实例,并且将父窗体的事件绑定子窗体中的方法
var frm = new FrmMX();
frm.Bind += new FrmMX.frmProductCert(BindGridMX); //BindGridMX是子窗体中的方法,也是需要改变的部分的方法

第三步:
在父窗体中调用该事件就OK了
Bind(sReport); //在父窗体中调用之前定义的事件

解决方案二:

文章提到的方式用变量绑定控件的方式
其实更灵活的方式,你直接用CListCtrl的成员函数来获取,InsertItemData 插入数据。GetItemData读取数据

解决方案三:

参考:
http://www.sowsoy.com/topics-391.html

主窗体向子窗体传递可以用构造函数。
子窗体可以用Owner向主窗体传值。

还可以使用非模态的对话框,使用消息传值。

时间: 2024-12-03 17:35:17

操作-VC++ 主窗口与子窗口ListCtrl传值(有文字有整数,列表形式)的相关文章

qt c++-Qt中,到底如何实现主窗口和子窗口之间的通信?

问题描述 Qt中,到底如何实现主窗口和子窗口之间的通信? RT,比如,当子窗口关闭时,重新打开主窗口.这个是如何通信的,希望能给上例子.我知道是用信号和槽,可是两个窗口(类)之间的信号和槽我还不太会.网上也没找到具体的例子.希望大婶们能给个好点的直观的例子. 解决方案 主窗体类为A,子窗体类为B,在A中实例化B,其对象为b,关闭b,但不要释放b,调用b的public方法返回数据.仔细理解. void A::buttonClick(){ B b; b.exec(); b.getData();} 或

winform-主窗口 向子窗口传值,主窗口 textchange 子窗口输入框也变

问题描述 主窗口 向子窗口传值,主窗口 textchange 子窗口输入框也变 form1(主窗口)呼出form2(子窗口),然后将form1的值通过委托传给form2,利用委托怎么实现呢.我写了 但是 老是出来新窗口.因为没有币,所以不能悬赏.让我哭一下,新手求答案 解决方案 方法:信号槽 假设主窗口为A? : 子窗口 为 a : 给子窗口定义一个信号,当触发这个信号,使用信号槽连接来发送参数. 子窗口定义信号: signals: void toMainWindow(QString); 在子窗

vc++-mfc父窗口修改子窗口变量的问题

问题描述 mfc父窗口修改子窗口变量的问题 NewDlg dlg; CString str("hello"); dlg.textNum.SetWindowText(str); dlg.DoModal(); NewDlg 是弹出窗口的类,textNum是它的一个文本域,为什么不能这样修改这个文本域的值 解决方案 MFC操作父窗口的子控件MFC操作父窗口的子控件MFC子窗口 解决方案二: dlg还没有DoModal创建,你就SetWindowText了,SetWindowText需要窗口创

jQuery父窗口与子窗口通信

$("#父窗口元素ID",window.parent.document);  对应javascript版本为window.parent.document.getElementByIdx_x("父窗口元素ID"): 取父窗口的元素方法:$(selector, window.parent.document); 那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document); 类似的,取其它窗口的方法大同小异 $

MFC父窗口控制子窗口CListCtrl控件刷新的问题

问题描述 MFC父窗口控制子窗口CListCtrl控件刷新的问题 目标:父窗口单击按钮,向子窗口发送一个消息:子窗口的消息处理函数中,调用列表显示函数来刷新列表数据. 我的代码: // 父窗口void CDlg4::OnButtonClick(){ CDlg43 *dlg = new CDlg43(); dlg->Create(IDD_DIALOG_43this); if (NULL == dlg) { AfxMessageBox(""failed""); d

JavaScript新窗口与子窗口之间的传值

 这篇文章主要介绍了JavaScript新窗口与子窗口之间的传值,需要的朋友可以参考下 window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+  window.open(pageURL,name,parameters)  pageURL 为子窗口路径  name 弹出窗口的名字  parameters 为窗口参数(各参数用逗号分隔)  alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后  alwa

Chrome下ifame父窗口调用子窗口的问题示例探讨

 这篇文章主要介绍了Chrome下ifame父窗口调用子窗口的问题,需要的朋友可以参考下 项目中遇到的一个浏览器不兼容问题:    在IE和Firefox下直接在ifame框架页的父窗口用子窗口的name调用子窗口的js函数都好使,在Chrome下不好使.   代码如下: <frameset rows="108,*,30" border="0" frameSpacing="0" frameBorder="0"> 

servlet-关于父窗口和子窗口的request 的问题(可以传值吗??)

问题描述 关于父窗口和子窗口的request 的问题(可以传值吗??) 问题是这样的 我在login.jsp提交表单到一个servlet 然后在这个servlet中将一个list存入 request,再跳转到index.jsp(是用frameset写的 引入了show.jsp).本来我是在show.jsp 中获取数据.可是在index.jsp看不了show.jsp数据 因为login.jsp servlet index.jsp 才是同一了请求 现在我要在index.jsp看到show.jsp 的

Chrome下ifame父窗口调用子窗口的问题示例探讨_javascript技巧

项目中遇到的一个浏览器不兼容问题: 在IE和Firefox下直接在ifame框架页的父窗口用子窗口的name调用子窗口的js函数都好使,在Chrome下不好使. 复制代码 代码如下: <frameset rows="108,*,30" border="0" frameSpacing="0" frameBorder="0"> <frame name="header" scrolling=&q