نمایش نتایج 1 تا 11 از 11

نام تاپیک: حرکت دادن scroll یک panel

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    http://hamdsoft.ir
    پست
    350

    حرکت دادن scroll یک panel

    سلام
    به یه مشکل عجیب خوردم که هر کاری می کنم درست نمی شه نمی دونم چه کار کنم و اون اینه که وقتی می خوام scroll یک panel رو در رویداد کلیک یک باتن کنترل کنم و مثلا به پایین بیارم دفعه اول انجام می دهد ولی با دوباره زدن کلید به جای اینکه پایین تر بیاد به همون حالت اول بر می گرده در صورتی که کدی من بهش دادم فقط می تونه پایین بیاره و بالا نمی تونه ببره
    من کد این قسمت رو می زارم تا اگه کسی می تونه کمکم کنه ممنون

    panel1.AutoScrollPosition = newPoint(panel1.AutoScrollPosition.X, panel1.AutoScrollPosition.Y + 20);

  2. #2

    نقل قول: حرکت دادن scroll یک panel

    ببین این کد به دردت میخوره:

    int y = panel1.AutoScrollPosition.Y == panel1.VerticalScroll.Maximum ? -20 : panel1.VerticalScroll.Value;
    panel1.AutoScrollPosition = new Point(panel1.AutoScrollPosition.X, y + 20);

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    http://hamdsoft.ir
    پست
    350

    نقل قول: حرکت دادن scroll یک panel

    با سلام
    خیلی ممنون از کدتون soheilajoon، این کدتون درست کار می کنه
    ولی یک سوال برام پیش اومد و اون اینکه می تونید بگویید این کد چه کار می کنه؟ یه کمی گیج شدم
    باز هم ممنون

  4. #4

    نقل قول: حرکت دادن scroll یک panel

    خط اول برابر کد زیره :

    if (panel1.AutoScrollPosition.Y == panel1.VerticalScroll.Maximum)
    y = -20;
    else
    y = panel1.VerticalScroll.Value;


    if توی این کد مکان Y رو با بیشترین حد Scroll مقایسه می کنه . . . .
    البته این خط رو برای این گذاشتم که وقتی به پایین Scroll رسید دوباره برگرده بالا ولی نیمه کاره موند!!
    بهتره از این کد استفاده کنید :

    int y = panel1.VerticalScroll.Value;
    panel1.AutoScrollPosition = new Point(panel1.AutoScrollPosition.X, y + 20);


    اینجا هم خط اولش مقدار Position عمودی Panel1 رو توی متغیر Y میزاره ,
    خط بعد هم Y+20 میکنه , همین.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    http://hamdsoft.ir
    پست
    350

    نقل قول: حرکت دادن scroll یک panel

    سلامی دوباره
    مثل اینکه مشکلات این scroll پایانی نداره
    دوباره یک مشکل دیگه که نمی دونم چه کارش کنم هر کاری هم کردم نتونستم اون رو حل کنم
    من یک picturebox توی یک panel دارم که چون عکس های نمایش داده شده تو برنامه بزرگه panel ، از دو طرف scroll می خوره که برای راحتی کاربر می خوام مثل برنامه acrobat کاربر بتونه با موس اون رو چپ و راست کنه و بتونه بالا و پایین ببره که اون کد بالایی برای برای کلید وسط موس به کار بردم و درست کار کرد (با تشکر از soheilajoon ) اما می خواهم وقتی کاربر موس رو می گیره و این طرف و اون طرف می بره panel هم درست هماهنگ با اون بره تا کاربر بتونه عکس رو کامل ببینه ولی نتونستم
    فقط یک کد تو رویداد move موس همراه با mouse down و up نوشتم که برعکس عمل می کنه و هر کاری می کنم برعکس(درست) نمی شه کد رو می زارم تا اگه کسی می دونه کمکم کنه
    باز هم ممنون
    کد رویداد mousemove مربوط به picturebox

    if (mouse == 1)
    {
    if (e.X != mx || e.Y != my)
    {
    int i = (e.X - mx);
    int j = (e.Y - my);
    panel1.AutoScrollPosition = newPoint(panel1.AutoScrollPosition.X + i, panel1.AutoScrollPosition.Y + j);
    }
    }

    mx و my در رویداد mousdown مقدار دهی می شه همچنین متغیر mouse در رویداد mousedown مقدار 1 و در رویداد mouseup مقدار 0 می گیره
    باز هم ممنون

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    http://hamdsoft.ir
    پست
    350

    نقل قول: حرکت دادن scroll یک panel

    کسی نیست بتونه کمک کنه

  7. #7
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    http://hamdsoft.ir
    پست
    350

    نقل قول: حرکت دادن scroll یک panel

    باز هم سلام
    کسی نمی تونه کمکم کنه

  8. #8

    نقل قول: حرکت دادن scroll یک panel

    کاش یه کم بهتر توضیح می دادی می خوای چیکار کنی!
    منظورت از :
    " می خواهم وقتی کاربر موس رو می گیره و این طرف و اون طرف می بره panel هم درست هماهنگ با اون بره تا کاربر بتونه عکس رو کامل ببینه "
    چیه؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    http://hamdsoft.ir
    پست
    350

    نقل قول: حرکت دادن scroll یک panel

    با سلام
    ببخشید چند روز نتونستم بیام ولی مشکلم همچنان باقی است
    و اما در مورد توضیح اینکه برنامه من عکس های زیادی که هر کدوم از سایز بزرگی برخوردار هست را نمایش می دهد که برای نمایش آن ها از picturebox داخل یک panel برای تسهیل در scroll خوردن و کنترل بهتر آن استفاده می کنم و این رو هم بگم که باید عکس ها بزرگ نمایش داده بشند و حتی قابلیت zoom رو هم براش پیش بینی کرده ام
    حالا می خوام کاربر بتونه با استفاده از موس عکس رو این طرف و آن طرف کنه که تا حدودی هم تونستم
    یعنی اینکه می خوام کاربر با کلیک کردن و جابه جا کردن راحت تمام عکس رو ببینه(مثل خیلی از برنامه ها همچون acrobat reader که با گرفتن صفحه می تونند این طرف و آن طرف برند
    و کدی هم که دارم برعکس عمل می کنه و نتونستم با هیچ عملی آن را تصحیح کنم در واقع این کد کارامد نیست
    حالا اگه راه حلی دارید ممنون می شم بگویید

  10. #10
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    http://hamdsoft.ir
    پست
    350

    نقل قول: حرکت دادن scroll یک panel

    سلام
    آقا من دارم همین طور وقت رو از دست می دم و هر کاری هم می کنم جوابی برای سوالم پیدا نمی کنم این تاپیک هم که به نتیجه نرسیده هر چی هم در سایت جستجو کردم جوابی نیافتم دیگه نمی دونم چه کار کنم از مدیر خواهش می کنم کمک کنند دیگه وقت زیادی ندارم

  11. #11

    نقل قول: حرکت دادن scroll یک panel

    ببین این کد کمکت می کنه :


    if
    (mouse == 1)
    {
    if (e.X != mx || e.Y != my)
    {
    int i = (e.X - mx);
    int j = (e.Y - my);
    panel1.AutoScrollPosition = new Point(panel1.HorizontalScroll.Value - i, panel1.VerticalScroll.Value - j);
    }
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •