PDA

View Full Version : چطور با کلیک روی دو یا سه دکمه پشت سر هم انها را با هم به وسط صفحه بیاریم ( لطفا فقط کد سی شارپ )



mahin-movaghar
چهارشنبه 04 مرداد 1391, 22:15 عصر
:خجالت:

در یک ستون که 5 تا دکمه پشت سر هم هسنتد ما می خواهیم با کلیک بر روی دومی انهایی که جلو دکمه هستند بیایند .وسط فرم
1
2
3
4
5

the king
چهارشنبه 04 مرداد 1391, 23:37 عصر
:خجالت:

در یک ستون که 5 تا دکمه پشت سر هم هسنتد ما می خواهیم با کلیک بر روی دومی انهایی که جلو دکمه هستند بیایند .وسط فرم
1
2
3
4
5


private void button2_Click(object sender, EventArgs e)
{
int height = button5.Bottom - button3.Top;
int xdiff = (ClientSize.Width - button3.Width) / 2 - button3.Left;
int ydiff = (ClientSize.Height - height) / 2 - button3.Top;
button3.Location = new Point(button3.Left + xdiff, button3.Top + ydiff);
button4.Location = new Point(button4.Left + xdiff, button4.Top + ydiff);
button5.Location = new Point(button5.Left + xdiff, button5.Top + ydiff);
}

harani
چهارشنبه 04 مرداد 1391, 23:46 عصر
امیدوارم که سوالتان را فهمیده باشم شما فرمتون مثل شکل زیر دیگه ؟؟؟؟


90237

شما میخواین با فشردن دکه center همه ی کنترلها به وسط بیان ؟؟؟؟

کد زیر یه همچین چیزی هست .



foreach (Control ctrl in this.Controls)
{

ctrl.Left = this.Width / 2;
//یا این کد ctrl.Location = new Point(this.Width / 2, ctrl.Location.Y);

}

mahin-movaghar
پنج شنبه 05 مرداد 1391, 07:02 صبح
نه سوالم این نیست !!
فرم صفحه تمام صفحه است
شما یک ستون فرض کن که 5 تا دکمه پشت سر هم قرار دارند
1
2
3
4
5
حالا من می خوام دکمه شماره 3 بیاد وسط صفحه اما جلو اون دکمه های شماره 4و5 هست یعنی موقعیت هر 3 انها باید عوض بشه و بیان وسط
1
2




3
4
5

mahin-movaghar
پنج شنبه 05 مرداد 1391, 07:16 صبح
private void Form1_Load(object sender, EventArgs e)
{
int horizotal = 30;
int vertical = 30;
Button[] player_A = new Button[54];

for (int i = 0; i < player_A.Length; i++)
{
player_A[i] = new Button();
player_A[i].Size = new Size(60, 23);
player_A[i].Text = i.ToString();
player_A[i].Location = new Point(horizotal, vertical);


if ((i == 1) || (i == 6) || (i == 11) || (i == 13) || (i == 18) ||
(i == 23) || (i == 28) || (i == 33) || (i == 38) || (i == 43) || (i == 48))
{

vertical = 30;
horizotal = horizotal + 80;
}//if
else
vertical = vertical + 30;
this.Controls.Add(player_A[i]);
}//for



}//form load

شما این کدها را بزن تا بیشتر متوجه سوالم بشی

harani
پنج شنبه 05 مرداد 1391, 12:28 عصر
فرمتون به شکل زیر دیگه ؟؟؟؟؟


90254

شما میخواین با فشردن کلید 3 دکمه های 3و4و5 به وسط بیان ؟؟
کد زیر جوابتون رو میده :

private void button3_Click(object sender, EventArgs e)
{
button3.Left = button4.Left = button5.Left = this.Width / 2;
//یا این کد button3.Location = button4.Location = button5.Location = new Point(this.Width / 2, ctrl.Location.Y);
}

FastCode
پنج شنبه 05 مرداد 1391, 12:41 عصر
استادتون دقیقاً چی گفت؟

mahin-movaghar
پنج شنبه 05 مرداد 1391, 13:08 عصر
گفته بازی چرتکه درست کن :قهقهه: