PDA

View Full Version : ساخت یک گروه کنترل و حرکت دادن آن



bahar_engineer
جمعه 27 آذر 1388, 10:54 صبح
سلام

من می خوام یه picturebox رو به همراه یک textbox مثل یک گروه کنار هم قرار بدم یعنی هر جایی که picturebox رو حرکت دادیم اون تکست باکس هم به اون متصل باشه... یه جورایی می خوام تکست باکس یکی از خصوصیات picturebox باشه ... انگار که جزیی از picturebox هست

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

کسی می تونه راه حلی ارائه بده ؟ برای حرکت یوزر کنترلی که محتویاتش یه textbox و یه picturebox هست.. در ضمن می خوام با حرکت ماوس حرکت کنه .

کدی که نوشتم اینه اما اجرا نمی شه : در واقع انگار یوزرکنترل جا می مونه توی صفحه و زمانی هم که یوزرکنترل شامل کنترل های دیگه باشه تکون نمیخوره!



bool isMouseDown = false;
private void userControl11_MouseDown(object sender, MouseEventArgs e)
{
isMouseDown = true;
}

private void userControl11_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown == true)
{

userControl11.Location = new Point(e.X, e.Y);

}
}

private void userControl11_MouseUp(object sender, MouseEventArgs e)
{
isMouseDown = false;
}


اگه کسی می تونه توی تصحیح این کد کمکی بکنه ممنون میشم

اگه هم راه حلی غیر از یوزرکنترل دارین که بتونم یه تکست باکس و یه picturebox رو به هم متصل کنم مثل یک گروه ... باز هم ممنون می شم ارائه بدین

راستی یه سوال
اگه من تکست باکس و picturebox رو توی یه groupbox قرار بدم چه اقدامی می تونم انجام بدم که وقتی روی هر قسمتی از groupbox کلیک کردم بتونم با ماوس کل groupbox رو حرکت بدم ؟
آخه اگه مثلا موس رو روی picturebox قرار بدم و بخوام groupbox رو حرکت بدم نمی شه ... تنها زمانی حرکت می کنه که روی حاشیه خود groupbox ماوس رو قرار بدم ... یعنی می خوام مثل توی فتوشاپ همه لایه های groupbox و کنترل های داخلش یکی بشه که هر جاشو که با ماوس گرفتم بتونم کل groupbox رو حرکت بدم

توی هر کدوم از این مسائل که می تونین کمک کنین لطفا

j68719
جمعه 27 آذر 1388, 13:04 عصر
سلام


هر كنترلي خاصيت هاي left . top داره كه شما با مقداردهي به آنها مي توانيد هر كنترلي را جابجا كنيد




private void userControl11_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button ==MouseButtons.Left)
{
userControl11.Left = e.X;
userControl11.Top = e.Y;
}
}