这是对未发生的事情的一般概念,但假设:
每当我更新那里的URL字段时,两个带圆圈的图像/图片框应该同步。但这并不奏效。我想要的是每当我点击"完成"按钮。
我使用Profile.settings文件功能来保存配置文件图片字符串(Profile.Default.PROFILE_PICTURE)。我调试并发现我的Setup.Settings文件在两个脚本中都加载了值,但是" form_menu"不要更新迷你图片。
这是我的主要表单的初始化代码(带有小圆形图片框的表单)(我想要加载图片)。
public form_menu()
{
selectedTab = 4;
InitializeComponent();
label2.Text = Profile.Default.USERNAME;
MessageBox.Show(Profile.Default.PROFILE_PICTURE);
try
{
pictureBox4.Load(Profile.Default.PROFILE_PICTURE);
}
catch (Exception)
{
Profile.Default.PROFILE_PICTURE = Setup.Default.AVATAR;
pictureBox4.Load(Profile.Default.PROFILE_PICTURE);
}
System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
gp.AddEllipse(0, 0, pictureBox4.Width - 3, pictureBox4.Height - 3);
Region rg = new Region(gp);
pictureBox4.Region = rg;
pictureBox2.Location = new Point(Convert.ToInt32(pictureBox2.Location.X - (Profile.Default.USERNAME.Length + pictureBox2.Size.Width) * 3), pictureBox2.Location.Y);
pictureBox3.Location = new Point(Convert.ToInt32(pictureBox3.Location.X - (Profile.Default.USERNAME.Length + pictureBox3.Size.Width) * 3) + pictureBox2.Size.Width, pictureBox3.Location.Y);
}
" Setup.Default.AVATAR"是另一个.settings文件,其中包含默认图像URL,以防用户定义的文件未加载。
当我上传图片并按"完成"这是我的子表单。按钮:
private void button2_Click(object sender, EventArgs e)
{
if (!valid_image)
{
MessageBox.Show("There is no image to upload to your profile.", "Upload rejected", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (textBox1.Text != Profile.Default.PROFILE_PICTURE)
{
Profile.Default.PROFILE_PICTURE = textBox1.Text;
Profile.Default.Save();
}
this.Hide();
form_menu form = new form_menu();
form.Activate();
}
答案 0 :(得分:0)
答案:
我刚刚通过处理原始表单然后重新创建它来解决了这个问题,所以一切都将被同步。
this.Hide();
Form form = Application.OpenForms["form_menu"];
if (form != null)
{
form.Dispose();
}
form_menu open = new form_menu();
open.Show();
因此不需要创建额外的变量或回调。