PDA

View Full Version : رفرش کردن یک لیبل در فرم ولد



mohamadz5
دوشنبه 21 شهریور 1390, 16:51 عصر
سلام
شرمنده همچین سوالی می پرسم
من یک لیبل دارم در فرم MDI . حالا من از داخل فرم فرزند لیبلی در فرم ولد را تغییر میدم . ولی نمیدونم چطور لیبل را رفرش کنم تا متن جدیدو نمایش بده . مقدار درست پاس داده میشه تریس کردم دیدم ولی لیبل بروز نمیشه
:خجالت:

water_lily_2012
دوشنبه 21 شهریور 1390, 17:00 عصر
شما از چه روشی برای این کار استفاده می کنید.

mohamadz5
سه شنبه 22 شهریور 1390, 08:32 صبح
از کد زیر .
در فرم فرزند

private void btnok_Click(object sender, EventArgs e)
{
new MDIMain(AccData.Shared.EndDate());
}

End date تاریخ برمیگردونه .
در فرم ولد

using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using AccData.DataMethods.Main;
using System.IO;

namespace Accounting
{
public partial class MDIMain : Form
{

public MDIMain(string dbyear)
{
InitializeComponent();

// set year value
lblyear.Text ="سال مالی منتهی به"+ dbyear;

this.Refresh();
}
..
..
...

مقدار در لیبل ذخیره میشه ولی نمایش داده نمیشه

water_lily_2012
سه شنبه 22 شهریور 1390, 09:46 صبح
متوجه شدم اشکال از کجاست. شما از delegate و Event برای این کار استفاده کن. مطمئن باش به نتیجه دلخواه میرسی.

mohamadz5
سه شنبه 22 شهریور 1390, 09:58 صبح
حالا باید چیکار کرد که لیبل مقدار جدید بگیره . هر کاری کردم نشد بجز restart کردن برنامه به صورت خودکار که این کار اصلا جالب نیست

water_lily_2012
سه شنبه 22 شهریور 1390, 10:10 صبح
مگر از این راهی که گفتم استفاده نکردید.
اگر اطلاعی ندارید. ذکر کنید تا توضیح دهم.

mohamadz5
سه شنبه 22 شهریور 1390, 10:19 صبح
اگه لطف کنید که یک دنیا ممنون می شم

water_lily_2012
سه شنبه 22 شهریور 1390, 10:37 صبح
ببینید شما اول یک Delegate در فرم فرزند خود ایجاد می کنید، و یک پارامتر String برایش در نظر می گیرید.
سپس از روی این Delegate یک Event ایجاد می کنید. و در دکمه مورد نظر خود این Event را صدا می زنید با مقدار رشته ای که در نظر دارید به فرم والد ارسال بشه.
خوب این از فرم فرزند

در فرم والد:
یک تابع تعریف می کنید که کار مورد نظر شما را انجام می دهد. حالا هر کاری می خواهد باشد. با پارامتر رشته ای
و یک دکمه که در این دکمه فرم فرزند را نمایش می دهید و تابع فوق را به Delegate تعریف شده در فرم فرزند ارتباط می دهید.
حالا هر وقت در فرم فرزند بر روی دکمه مورد نظر کلیک کنید این تابع در فرم والد اجرا می شوند.