50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

دسترسی به کنترل های یک فرم در فرم دیگر

من یک فرم امانت برای کتاب دارم که وقتی یکی از امانت ها رو در گریدویو اون انتخاب میکنم و دکمه تحویل دادن رو میزنم، فرم تحویل باز میشه .

وقتی اون داده رو در جدول تحویل ذخیره کردم باید از دیتا گریدویوی موجود در فرم امانت حذف بشه. و من نمیدونم باید چطور این کارو انجام بدم. :/

در واقع میخوام بدونم این تغییر آنلاین چطور انجام میشه بدون اینکه من از فرم تحویل به جای دیگه برم.

ممنون میشم اگه کمک کنید تا این مشکل حل بشه.

پرسیده شده در 1395/04/24 توسط

3 پاسخ

0

چرا دوست عزیز با اجرای این روش خواهید دید که با هر کنترل از فرم 2 در فرم 1 تمامی تغییرات برروی فرم 1 قابل اجراست حتی اگه دوتا فرم همزمان باز باشند.

پاسخ در 1395/04/25 توسط
0

سلام این راهی که شما گفتید اگه فرمتمو قبلا باز شده باشه کارایی نداره ولی این روش داره

1-می تونید توابع مربوط به کنترل رو سراسری تعریف کنید برای این کا بجای private از public static در ابتدای تابع استفاده کنید در این صورت در بعضی خط هایی که ابتدای آن ها thisوجود دارد خطا رخ می دهد اگر this اول این خط ها را پاک کنید خطا بر طرف می شود . نحوه ی دست رسی:شما با نوشتن نام فرم می توانید به کنترل دست رسی داشته باشید به نمونه کد زیر توجه کنید.

در این جا اسم فرم MainFormهست و اسم کنترل datagridview

MainForm.datagridview.source=tabless;

2-می تونید از این دستور هم استفاده کنید که در بعضی موارد به درد می خوره

Application.Forms["formname"].Contros["controlname"].Text="";

پاسخ در 1395/04/25 توسط
آواتار . .
0

سلام دوست عزیز شما باید در ابتدا یک نسخه Instance از فرم لیست کتابها درون فرم تحویل ایجاد کنی فرض کن فرم لیست کتابهات فرم 1 و فرم تحویل کتاب یعنی مشخصات تحویل گیرنده فرم 2 باشه در این صورت مثال زیر رو اجرا کن!

// In Form1 
private void CmdOpenForm2_Click(object sender, EventArgs e)
{
	Form2 Frm2 = new Form2(this);
    Frm2.bookId = dataGridView1.SelectedRows[0].Index;
	Frm2.ShowDialog();
}
// In Form2
public int bookId;
private Form1 Form1Instance { get; set; }
public Form2(Form1 Form1Ins)
{
	InitializeComponent();
	Form1Instance = Form1Ins;
} 


private void CmdDeliveryBook_Click(object sender, EventArgs e)
{

	Form1Instance.dataGridView1.Rows.RemoveAt(bookId.Index);
}

بر محمد و آل محمد صلوات

پاسخ در 1395/04/24 توسط

پاسخ شما