我正在用C#和gtk#构建一个GUI应用程序。我最近遇到了一个问题,并正在寻找这个问题的最佳解决方案:gtk#窗口线程
我有一个模式窗口,弹出用户输入一个数字。这个窗口是从我的主窗口进入一个单独的窗口,它的设置是这样的:
public class MainWindow()
{
public NumberEntry numEntry;
每当我需要从用户输入一个数字,我称之为勾住ShowAll()像NumberEntry的公共窗口属性:
numEntry.win.ShowAll();
而这一切工作正常。之后,得到他们所输入的值,我称之为:
int entered = numEntry.valueEntered;
问题显然是代码继续勾住ShowAll后立即执行()行结束,numEntry.valueEntered总是0,我想什么要做的(并且一直在试图做的)是暂停主线程,并在第二线程中打开数字输入窗口,并在完成时返回主线程。当我尝试打开数字输入窗口时,暂停主线程似乎可以防止GUI更改,从而使程序冻结。如果可能的话,我也想避免回调方法,看看过了一段时间后会如何变得相当复杂。有什么建议?谢谢!
ShowDialog并返回值作为ModalResult? –
嗯...... ShowDialog不会返回一个值:( –
该窗口比标准对话框更复杂(它就像一个带有16个按钮的计算器)您可以创建自定义对话框还是仅限于标准取消,确定,等? –