我已经搜索并尝试了许多解决此问题的方法。
对于Visual Studio 2015 WinForma应用程序,我希望#bottonNuevo
的文本在时间延迟后更改。
在我的许多方法中,我可以使用Label
确认标签的字符串值已更改,但是屏幕UI并未更改。
到目前为止,我已经尝试过:
1:在更改值之前,MessageBox
内的Thread.Sleep(number)
。
结果:在功能结束之前,似乎没有更新UI。
2:各处Public Form1()
。
结果:什么都不做。
3:使用nameoflabel.refresh();
并在计时器的经过函数中更改我的System.Timers
的值。
结果:更改Label
的值,但在屏幕上看不到。
4:由于涉及按钮单击的所有操作都可以完美地更改标签文本,因此我研究了如何使用Label
来模仿按钮单击,并为此制作了一个假按钮。
结果:值发生了变化,但屏幕上仍然没有任何变化。
我开始相信这一定是一个错误。是?没有?
无论如何,这是我需要工作的:
buttonName.preformClick()
答案 0 :(得分:1)
public void holdone(Object source, ElapsedEventArgs e)
{
say.Invoke((MethodInvoker)delegate
{
say.Text = "new after seconds"; //predicated upon a declared var say = new Label()
});
}
这是System.Timers.Timer
Elapsed
事件处理程序的示例,该事件处理程序应(相对)立即影响您的UI。
答案 1 :(得分:1)
您可以改用list comprehension
,这将根据需要更新UI:
load['Encoded_Column'] = [encode('password',x) for x in load['F']]
load['Decoded_Column'] = [decode('password', x) for x in load['Encoded_Column']]
print (load)
A B C D E F Encoded_Column Decoded_Column
0 a 4 7 1 5 a w5E= a
1 b 5 8 3 3 a w5E= a
2 c 4 9 5 6 a w5E= a
3 d 5 4 4 9 b w5I= b
4 e 5 2 2 2 b w5I= b
5 f 4 0 0 4 b w5I= b