تغییر سایز اسکرول بار برای برنامه های تاچ اسکرین
سلام
من یه برنامه سی شارپ با ویندوز فرم نوشتم که قرار به صورت تاچ اسکرین ازش استفاده بشه. تو برنامه یه پنل وجود داره که در صورت لزوم قراره اسکرول بشه . ولی به خاطر باریک بودن اسکرول بار ها نمیشه از اونها به راحتی استفاده کرد.
چطور میشه سایز اسکرول بارها رو تغییر داد و انها رو کمی پهن تر کرد؟
نقل قول: تغییر سایز اسکرول بار برای برنامه های تاچ اسکرین
با سلام
شما میتونید از کامپوننت ScrollBar دات نت که توی Toolbox هست استفاده کنید و در رویداد Scroll کد نویسیش کنید
برای فرم:
//عمودی
private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
this.VerticalScroll.Value = vScrollBar1.Value;
}
//افقی
private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
this.HorizontalScroll.Value = hScrollBar1.Value;
}
موفق باشید
نقل قول: تغییر سایز اسکرول بار برای برنامه های تاچ اسکرین
من کل فرم رو نمیخوام اسکرول کنم فقط یک پنل هست که اندازه افقی اون ثابت هست و فقط به صورت عمود اسکرول میشه. کد زیر رو برای اسکرول بار نوشتم ولی ارتباطش با پنل برقرار نشد و با حرکت اسکرول پنل اسکرول نمیشه:افسرده:
private void vScrollBar2_Scroll(object sender, ScrollEventArgs e)
{
PicturePanel.VerticalScroll.Value = vScrollBar1.Value;
}
//---------------------------------------------------------------------------------------------------------------------
اشکال کارم کجاست؟
نقل قول: تغییر سایز اسکرول بار برای برنامه های تاچ اسکرین
بخاطر این هست که شما دارید برای vScrollBar2 مینویسید ولی توی کد Value روی vScrollBar1 تنظیم کردید!
اصلاحش کنید
نقل قول: تغییر سایز اسکرول بار برای برنامه های تاچ اسکرین
:لبخند::لبخند::لبخند::لبخند:: بخند:درست میفرمایید اصلاحش کردم. الان یه مشکل دیگه داره . پنل اسکرول میشه ولی پرش داره موقع حرکت.:افسرده:
نقل قول: تغییر سایز اسکرول بار برای برنامه های تاچ اسکرین
نقل قول:
نوشته شده توسط
__MAHNAZ__
:لبخند::لبخند::لبخند::لبخند:: بخند:درست میفرمایید اصلاحش کردم. الان یه مشکل دیگه داره . پنل اسکرول میشه ولی پرش داره موقع حرکت.:افسرده:
با سلام
شما هم برنامه نویسید کمی تلاش کنید
پرش بخاطر این هست چون اندازه اسکرول با محتوای پنل همخوانی نداره
کد زیر رو نوشتم امیدوارم کمکتون کنه
private void Form1_Shown(object sender, EventArgs e)
{
vScrollBar1.Size = new Size(40, vScrollBar1.Size.Height);
panel1.ScrollControlIntoView(vScrollBar1);
panel1.AutoScrollPosition = vScrollBar1.AutoScrollOffset;
vScrollBar1.LargeChange = panel1.VerticalScroll.LargeChange-60;
}
private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
vScrollBar1.Scroll += (o, arg) => { panel1.VerticalScroll.Value = vScrollBar1.Value; };
}
اون 60 تقریبی و بازی با ریاضی هست اگه لازم بود کد رو نسبت به کارتون شخصی سازی کنید
فقط حتماً برای پنل هایی استفاده کنید که اسکرولشون حتمی است وگرنه با خطا مواجهه میشید
موفق باشید