使用第二种形式的数据填充表单的文本框

时间:2010-06-22 11:12:57

标签: c#

该应用程序有两种形式。主要形式(表格#1)使用线程。其中一个线程用于从TCP / IP套接字读取参数。一旦特定参数的值发生变化,我想在第二个表单(表单#2)的文本框中显示这个新值。

我列出了我认为是下面代码的重要部分。

表1:

//Resetting the manually adjusted 'gusBundlesPlacedOnPallet' parameter
if (gusBundlesInRow > 0)
{
    gusBundlesInRow = 0;
    //Update the 'BundlesOnPallet' display on the 'Manual Page' frmManualMode ManualMode = new frmManualMode();           
    ManualMode.NoOfBundlesInPalletizerDisplay(Convert.ToString(iIncomingMsg[15]));
}//End-if

表2:

//Creating a NoOfBundlesInPalletizer Delegate
public delegate void NoOfBundlesInPalletizerDisplayDelegate(string sMessage);
public void NoOfBundlesInPalletizerDisplay(string sMessage)   
{      
    if (txtBundlesInPalletizer.InvokeRequired)   
    {
        Invoke(newNoOfBundlesInPalletizerDisplayDelegate(NoOfBundlesInPalletizerDisplay), new   object[] { sMessage });
    }//End-if
    else
    {
        this.txtBundlesInPalletizer.Text = sMessage;
    }//End else-if
}//End method NoOfBundlesToPalletizeDisplay

表单#2上的文本框不会显示新值,但如果我在将新值分配给文本框(sMessage)后插入断点,则它确实包含正确的值。 此外,如果我关闭第二个表单然后重新打开它,它将显示正确的值。在我看来,我需要某种“刷新”文本框值?

谁能告诉我我做错了什么?

提前致谢

Terje

1 个答案:

答案 0 :(得分:0)

根据我的经验,控制元素总是自动更新。但你可以试试Control.Refresh();