由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问个Winform与工作类的互动问题。
相关主题
database access using C# .net2008 3.5, window form也问个template 的问题(C++)
新手问C# 问题问个程序问题
单会C#找不到工作吧?问个C++ virtual function的问题 (转载)
问个C#的问题也问个python 问题
问个 C++到C的问题谁能深入浅出的讲讲protocol和delegate的要点?
[合集] 问个算法问题Perl多线程的问题
[合集] 问个SOCKET问题啊 (转载)C language的functoin-based reuse的问题(概念级的)
问个先后的问题VISUAL STUDIO 2005 输出窗口(output) 怎么找不到?
相关话题的讨论汇总
话题: winform话题: worker话题: class话题: method话题: event
进入Programming版参与讨论
1 (共1页)
e***r
发帖数: 68
1
我把要实现的功能都放到一个worker class里面,然后把该worker class作为一个
winform class的成员。用户点击winform上的button时,button的event内会call
worker class的public方法。
现在的问题是,我想在winform内显示worker class输出的信息,不知道最地道的做法
是什么。
如果都在一个class, worker可以通过改变winform内textbox.Text来显示不同信息,但
现在winform和worker class在不同的类,不能直接调用,而且winform control都是私
有成员,不能通过winform的reference直接访问。
不知道这种winform和worker class的coupling问题是不是很常见而且有成熟的解决办
k*k
发帖数: 508
2
set your public method's output as a string instead of void, if
you need a string as output, or whatever you want.
another way is to put an out parameter in the method.

【在 e***r 的大作中提到】
: 我把要实现的功能都放到一个worker class里面,然后把该worker class作为一个
: winform class的成员。用户点击winform上的button时,button的event内会call
: worker class的public方法。
: 现在的问题是,我想在winform内显示worker class输出的信息,不知道最地道的做法
: 是什么。
: 如果都在一个class, worker可以通过改变winform内textbox.Text来显示不同信息,但
: 现在winform和worker class在不同的类,不能直接调用,而且winform control都是私
: 有成员,不能通过winform的reference直接访问。
: 不知道这种winform和worker class的coupling问题是不是很常见而且有成熟的解决办
: 法

g********a
发帖数: 649
3
卡夫卡大牛快看看我的微软面试题。

【在 k*k 的大作中提到】
: set your public method's output as a string instead of void, if
: you need a string as output, or whatever you want.
: another way is to put an out parameter in the method.

e***r
发帖数: 68
4
问题是public method执行过程中不同阶段要输出不同信息。例如worker class中有一
个ConnectToServer(...),开始时输出: "Connecting to Server...",连接建立后
要输出"Connected to Server". 我想winform每个阶段都把这些信息output到text box
上。

【在 k*k 的大作中提到】
: set your public method's output as a string instead of void, if
: you need a string as output, or whatever you want.
: another way is to put an out parameter in the method.

g********a
发帖数: 649
5
搞个event吧,每次有新文字就fire event,winform的event handler
对应更新。

box

【在 e***r 的大作中提到】
: 问题是public method执行过程中不同阶段要输出不同信息。例如worker class中有一
: 个ConnectToServer(...),开始时输出: "Connecting to Server...",连接建立后
: 要输出"Connected to Server". 我想winform每个阶段都把这些信息output到text box
: 上。

k*k
发帖数: 508
6
这个应该是正确的解决办法,如果需要传递多次消息。
可以定义一个 event,带上一个 string 参数。

【在 g********a 的大作中提到】
: 搞个event吧,每次有新文字就fire event,winform的event handler
: 对应更新。
:
: box

e***r
发帖数: 68
7
让我试试,thx
e***r
发帖数: 68
8
弄出来了:
1.worker class define&declare一个delegate.
2.然后winform中定义一个函数,绑定到worker class的delegate中
3.每当需要update的时候,worker class调用delegate.
说白了就是把winform中update textbox的函数指针传进worker class,然后update时
worker class调用函数指针对winform进行update.
语法比定义event要简练一些。
N********n
发帖数: 8363
9
You can handle it w/ classic InvokeRequired method.

【在 e***r 的大作中提到】
: 我把要实现的功能都放到一个worker class里面,然后把该worker class作为一个
: winform class的成员。用户点击winform上的button时,button的event内会call
: worker class的public方法。
: 现在的问题是,我想在winform内显示worker class输出的信息,不知道最地道的做法
: 是什么。
: 如果都在一个class, worker可以通过改变winform内textbox.Text来显示不同信息,但
: 现在winform和worker class在不同的类,不能直接调用,而且winform control都是私
: 有成员,不能通过winform的reference直接访问。
: 不知道这种winform和worker class的coupling问题是不是很常见而且有成熟的解决办
: 法

1 (共1页)
进入Programming版参与讨论
相关主题
VISUAL STUDIO 2005 输出窗口(output) 怎么找不到?问个 C++到C的问题
继承的assignment operator问题[合集] 问个算法问题
C++.net 和C++ 有什么不同? [合集] 问个SOCKET问题啊 (转载)
C# Winform关闭时的问题。问个先后的问题
database access using C# .net2008 3.5, window form也问个template 的问题(C++)
新手问C# 问题问个程序问题
单会C#找不到工作吧?问个C++ virtual function的问题 (转载)
问个C#的问题也问个python 问题
相关话题的讨论汇总
话题: winform话题: worker话题: class话题: method话题: event