窗体未显示图片框图像.显示调用
本文关键字:图像 显示 调用 框图 显示图 窗体 | 更新日期: 2023-09-27 18:18:18
我有一个包含1行2列的TableLayoutPanel的表单。
列1包含一个面板,其中包含一个图片框。第二列是一个文本框。
我想显示表单,然后一次一个字符地向文本框添加文本。一切正常,只是在文本框填充完成后才显示图片框图像。
class Program
{
static void Main(string[] args)
{
MainForm mainForm = new MainForm();
FormShown Shown = new FormShown(mainForm);
mainForm.Shown += new EventHandler(Shown.mainForm_Shown);
mainForm.ShowDialog();
}
}
class FormShown
{
MainForm mainForm;
public FormShown(MainForm aMainForm)
{
mainForm = aMainForm;
}
public void f1_Shown(object sender, EventArgs e)
{
mainForm.AddText("hello!");
}
}
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
PictureBox.Image = MyApp.Properties.Resources.MyImage;
}
public void AddText(string text)
{
foreach (char c in text)
{
TextBox.Text += c;
TextBox.Refresh();
System.Threading.Thread.Sleep(100);
TextBox.SelectionStart = TextBox.Text.Length;
}
}
}
我希望在资源中的代码中设置图像会足够快,并且我希望图片框能够由表单加载。展示的事件——我这样想错了吗?
我试过在设计视图中设置图像,而不是在代码中,但结果相同。
是否有我应该使用的不同事件?我相信show是最后一个被调用的
谢谢!
如果你知道Windows窗体事件的生命周期,那么你可以很容易地理解你到底遇到了什么问题。基本上,当窗体被绘制时,将绘制图像和其他控件,并在最后引发Paint事件。因此,这意味着应用程序将不会绘制任何控件或图形,直到所有进程都没有完成。
应该在不同的进程中调用AddText()
方法