سلام دوستان
چطوری میتونم فرم اول رو که جابه جا میکنم فرم دوم هم جابه جا بشه
دقیقا مثل آهنربا بچسبه به فرم 1
مثل برنامه teamviewer
ولی نه با استفاده از تایمر!
سلام دوستان
چطوری میتونم فرم اول رو که جابه جا میکنم فرم دوم هم جابه جا بشه
دقیقا مثل آهنربا بچسبه به فرم 1
مثل برنامه teamviewer
ولی نه با استفاده از تایمر!
سلام
شما اندازه فرم اول رو که دارید، لوکیشن فرم اول رو هم که دارید خب انتهای فرم اول همیشه برابر هست با ابتدای فرم دوم. یعنی y فرم اول همون y فرم دوم هست. برای به دست آوردن x فرم دوم باید x فرم اول رو بعلاوه width فرم اول کنید. اینجوری x , y فرم دوم که همون گوشه بالای سمت چپ فرم هست به دست میاد. حالا هر بار که فرم اول حرکت داده میشه (یعنی در رویداد locationChanged فرم اول) لوکیشن جدید رو برای فرم دوم تنظیم کنید. همین داستان رو برای سایز هم میتونید انجام بدید یعنی اگه width فرم اول تغییر کرد، لوکیشن جدید رو ست کنید و اگه Heigth فرم اول تغییر کرد Height فرم دوم رو هم تغییر بدید
میشه، من یه بخشیش رو میگم بقیه اش رو خودتون انجام بدید:
یه دکمه توی فرم اول بذارید که فرم دوم رو باز میکنه:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
f2.Location = new Point(this.Location.X + this.Width, this.Location.Y);
}
حالا برای رویداد locationChanged فرم اول هم کد زیر رو بنویسید:
private void Form1_LocationChanged(object sender, EventArgs e)
{
if (Application.OpenForms["Form2"] != null)
(Application.OpenForms["Form2"] as Form2).Location = new Point(this.Location.X + this.Width, this.Location.Y);
}
سلام تو فرم اولیت اونجا که می خوای فرم دوم رو نشون بدی می تونی از این استفاده کنی
secondForm select = new secondForm();
select.WindowStartupLocation = WindowStartupLocation.Manual;
select.Left = this.Left;
select.Top = this.Top;
// show Select form
select.ShowDialog();
مشکل من اینه که موقع اجرا ممکنه محل فرم اول تغییر کنه!
شما مگه نمیگید دو تا فرم دارید که فرم دوم همیشه به فرم اول چسبیده؟ خب کدی که نوشتم دقیقاً همین کار رو انجام میده، ابتدا فرم اول باز میشه، شما روی یک دکمه کلیک می کنید تا فرم دوم باز بشه، فرم دوم سمت راست فرم اول باز میشه، با توجه به کدی که برای رویداد LocationChanged نوشتم شما هر وقت فرم اول رو تغییر بدید فرم دوم هم جاش تغییر میکنه و همچنان اینها به هم چسبیده هستند. حالا یا من متوجه سوال شما نشدم یا شما کدها رو امتحان نکردید.
اگر موقع اجرا فرم اول جابه جا بشه فرم دوم دیگه کنارش نیست!
آقا یه شخص بی طرف این 4 خط کد رو تست کنه ببینیم داستان چیه!!!
ان شا الله که تو رویداد LocationChanged کدی نوشتید؟ولی اگه در هنگام اجرا کاربر فرم اول رو بکشه فرم دوم تکون نمیخوره!!
بفرما اینم یه نمونه ساده
دوستمون کدشون درسته ولی به جای ShowDialogeباید فرم Show بشه
البته من جایی showDialog ننوشته بودم، با همون کدهای بالا هم جواب میداد نیازی به تعریف فرم به صورت سراسری نبود، البته چون border فرم تغییر کرده، نیاز بوده که اون +10 انجام بشه.
به جان خودم من منظورم شما نبودید!!! و راستش من دیشب نوشتم و دسترسی به اینترنت نبود برای همین کد شما رو نتونستم استفاده کنم شرمنده!
secondForm select = newsecondForm(); select.WindowStartupLocation = WindowStartupLocation.Manual;
select.Left = this.Left;
select.Top = this.Top;
// show Select form
select.ShowDialog();