واضح آرشیو وب فارسی:سایت ریسک: کدی برای اتوماتیک کردن مولتی لاین kemiaonline 26 اسفند 1386, 22:43سلام من یه کد برای کامند یک میخوام وقتی روی کامند یک کلیک میکنم اون دستگیره ی تکست یک به طور اتوماتیک بره پایین دستگیره: مثلا" وقتی بیش از ده خط تو یه تکست تایپ میکنیم با استفاده از اون دستگیره ی ابی رنگ میتونیم متن قسمت بالا و پایین روببینیم kemiaonline 26 اسفند 1386, 22:47اسم علمی اون دستگیره هم فکر کنم اسکرول هست اگه فهمیدین کدوم دستگیره رو میگم جوابمو بدین ممنون the_king 26 اسفند 1386, 23:26با استفاده از مشخصه SelStart می توانید موقعیت ScrollBar را هم تعیین کنید : Text1.SelStart = Len(Text1.Text) kemiaonline 27 اسفند 1386, 00:01اما متااسفانه کدی که شما نوشتید یک ایراد داره اونم اینکه دستگیره رو به اخرین خط میبره درصورتی که من میخوام از خط اول اروم اروم رو به پایین بره راستش من از طریق حلقه ی for....next یه برنامه نوشتم وقتی روی کامند یک کلیک میکنم حدود صد تا حرف l مینویسه و اگه این دستگیره اتوماتیک پایین بره ( نه اینکه یه دفعه بره خط اخر ) ادم فکر میکنه توی تکست یک داره بارون میباره ممنون میشم جواب بدین the_king 28 اسفند 1386, 15:05برای جابجا کردن موقعیت ScrollBar بدون توجه به موقعیت مکان نمای (Cursor) داخل TextBox بایستی پیغام EM_SCROLL را به آن ارسال کنید. تابع SendMessage که در API ویندوز قرار دارد پیغام را به کنترل TextBox ارسال خواهد کرد. کد زیر مشخصات تابع SendMessage و مقدار پارامترهای EM_SCROLL را تعریف می کند : Private Const EM_SCROLL As Long = &HB 5 Private Const SB_LINEDOWN As Long = 1 Private Const SB_LINEUP As Long = 0 Private Const SB_PAGEDOWN As Long = 3 Private Const SB_PAGEUP As Long = 2 Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long با اضافه کردن کد بالا در ابتدای کد های فرم، آنرا برای بکارگیری تابع مورد نظر آماده کنید. اکنون فرض کنیم که دکمه ای به نام Command 1 روی فرم قرار دارد که با کلیک کردن روی آن قرار است ScrollBar درون Text1 به اندازه یک سطر به سمت پایین حرکت کند. کد زیر این عمل را انجام می دهد : Private Sub Command 1_Click() SendMessage Text1.hWnd, EM_SCROLL, SB_LINEDOWN, ByVal 0& End Sub اگر SB_LINEDOWN را با SB_LINEUP تعویض کنید، حرکت ScrollBar به سمت بالا (یک سطر) خواهد بود. بطور مشابه مقادیر SB_PAGEDOWN و SB_PAGEUP برای حرکت به اندازه یک صفحه (نه یک سطر) کاربرد دارند. kemiaonline 28 اسفند 1386, 15:54کدهای بالا موجب پیغام خطا میشود saalek110 28 اسفند 1386, 16:15هیچ خطایی نمی دهد. دقت کنید. ------------------------------------- یک باتون و تکست باکس به فرم بیافزایید. کد بالا را اضافه کنید. صفت مولتی لاین تکست باکس را روشن کنید و صفت اسکرول بارز تکست باکس را هم ورتیکال بگیرید. نتیجه اجرا : با هر بار زدن باتون یک ردیف تکست باکس اسکرول می شود. kemiaonline 28 اسفند 1386, 17:51بله امتحان کردم و درسته خطا نداد اما بازم مشکل داشت اونم اینه که من خواستم وقتی کاربر روی کامند یک یکبار کلیک کرد یه شکل بارانی رو در تکست باکس ببینه اما این برانه به اینصورتته که کاربر باید به تعداد دفعات خیلی زیاد روی کامند کلیک کنه تازه تیکه ایکه اسکرول بار پایین میره و روان نیست خواهشن کد رو درست کنید kemiaonline 28 اسفند 1386, 18:07ببینید تا من بهتر توضیح بدم یه باتون درست کنید و یک تکست البته خاصیت مولتی لاین و اسکرول بار رو هم فعال کنید اسکرول بار رو روی ورتیکال بزارید روی باتون یک کد زیر رو بنویسید For i = 0 To 100 Step 1 Text1.Text = Text1.Text + " l " l " Next i حالا چندیدن بار روی باتون یک کلیک کن که تکست یک پر از حرف L بشه به شکل زیر kemiaonline 28 اسفند 1386, 18:09اگه تصویر رو نمیتونید ببینید این ادرسشه
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2122]