PDA

View Full Version : سوال: ارور RichTextBox هنگام گذاشتن روی فرم



Hassan2500
جمعه 22 اردیبهشت 1391, 16:53 عصر
سلام
وقتی میخوام RichTextBox از جعبه ابزار روی فرم قرار دهم نمیشه و این ارور رو میده مشکل چیه چکار باید بکنم.

License information for this component not found. You do not have an appropriate license to use this functionality in the design environment.

alireza661
جمعه 22 اردیبهشت 1391, 17:06 عصر
آیا قرار دادن فایل کامپوننت ریچ تکست باکس در کنار برنامه در سیستم هایی که ویژوال بیسیک نصب نیست الزامی میباشد؟

محسن واژدی
جمعه 22 اردیبهشت 1391, 17:08 عصر
سلام علیکم
این خطا بخاطر یافت نشدن لایسنس rtbox است، چرا که کامپوننت های ریجستر شده در زمان نصب وی بی حاوی لایسنسی هستند که آن هم در زمان ریجستر شدن کامپوننت ثبت میشود، و اگر در زمان های بعد یا در ویندوز دیگری قصد کنیم صرفا با ریجستر کردن این کامپوننت از آن در برنامه استفاده کنیم با خطای زمان طراحی (خطایی که با آن روبرو شده اید) مواجه میشویم

برای رفع این مشکل فایل زیر که حاوی اطلاعات لایسنس های کامپوننت های ریجستر شده است را در ویندوز اجرا کنید بعد از ثبت اطلاعات یکبار وی بی را بسته و باز کنید

موفق باشید

محسن واژدی
جمعه 22 اردیبهشت 1391, 17:10 عصر
آیا قرار دادن فایل کامپوننت ریچ تکست باکس در کنار برنامه در سیستم هایی که ویژوال بیسیک نصب نیست الزامی میباشد؟
اصولا" همراه بودن کامپوننت (کامپوننت خارجی) مورد استفاده برنامه الزامی است، البته لازومی به نصب وی بی نیست و فقط کامپوننت را به همراه برنامه عرضه و در ویندوز مقصد آنرا ریجستر کنیم کافی است

موفق باشید

ho3ein.3ven
جمعه 22 اردیبهشت 1391, 17:11 عصر
86939[
سلام.این کامپوننت رو که برات گذاشتم امتحان کن .ببین جواب میده.

Hassan2500
جمعه 22 اردیبهشت 1391, 17:31 عصر
کاری رو که جناب واژدی گفتید انجام دادم مشکلم برطرف شد دستت درد نکنه الان یه مشکل جدید برام پیش اومده این که RichTextBox در Properties گزینه های Alignment و RightToLeft رو ندارد چکار باید کنم

محسن واژدی
جمعه 22 اردیبهشت 1391, 18:14 عصر
RichTextBox در Properties گزینه های Alignment و RightToLeft رو ندارد چکار باید کنم
کد زیر را بررسی کنید:

Private Const VK_RSHIFT = &HA1
Private Const VK_RCONTROL = &HA3
Private Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Sub Command1_Click()
RichTextBox1.SetFocus

Dim iScanRCtrl%
Dim iScanRShift%
iScanRCtrl% = MapVirtualKey(VK_RCONTROL, 0)
iScanRShift% = MapVirtualKey(VK_RSHIFT, 0)

keybd_event VK_RCONTROL, iScanRCtrl%, 0, 0
keybd_event VK_RSHIFT, iScanRShift%, 0, 0
keybd_event VK_RCONTROL, iScanRCtrl%, KEYEVENTF_KEYUP, 0
keybd_event VK_RSHIFT, iScanRShift%, KEYEVENTF_KEYUP, 0
End Sub

این کد عمل Ctrl+RShift را انجام میدهد
موفق باشید

alireza661
جمعه 22 اردیبهشت 1391, 18:22 عصر
آقای واژدی ولی به نظر میاد همراه بودن کامپوننت ریچ تکست باس در کنار برنامه لزومی نداشته باشد چرا که Wordpad ویندوز خودش از این کنترل بهره میبرد درست مانند اینترنت اکسپلورر که از کنترل وب بروزر بهتره میبرد و درست مثل مدیاپلیر که از کنترل windows mediaplayer بهره میبرد
نظر شما را در این رابطه جویایم؟

Hassan2500
جمعه 22 اردیبهشت 1391, 18:32 عصر
درست شده فقط اگه میشه کاری کنید Alignment بشود Center و این کد رو هم توش جا بدید در ضمن فقط خط اول رو اعمال میکنه و مثلاً در کد زیر خطوط بعد سر جایشان میمانند


With RichTextBox1
.Text = "ا" & vbNewLine & "ب" & vbNewLine & "ج"
.SelStart = 3
.SelLength = 1
.SelColor = vbRed
.SelStart = 0
End With

محسن واژدی
جمعه 22 اردیبهشت 1391, 18:47 عصر
آقای واژدی ولی به نظر میاد همراه بودن کامپوننت ریچ تکست باس در کنار برنامه لزومی نداشته باشد چرا که Wordpad ویندوز خودش از این کنترل بهره میبرد درست مانند اینترنت اکسپلورر که از کنترل وب بروزر بهتره میبرد و درست مثل مدیاپلیر که از کنترل windows mediaplayer بهره میبرد
نظر شما را در این رابطه جویایم؟
بله ولی کنترل rich-textbox سیستمی نیست و بهمراه وی بی عرضه میشود همینطور wordpad هم از کنترل ذاتی خودش استفاده میکند، اگر کلاس این دو را هم بررسی کنید از هم جدا هستند

موفق باشید

alireza661
جمعه 22 اردیبهشت 1391, 19:05 عصر
با تشکر از شما جناب واژدی در یک کلام بگم ای کاش میشد بوست کرد
چون دوستت دارم چون خوب وی بی کاری هستی

alireza661
جمعه 22 اردیبهشت 1391, 19:07 عصر
ای کاش میشد بوست کرد واژدی جان
حالا یه بوس مجازی میزنم لپتو بیار جلو :بوس:

محسن واژدی
جمعه 22 اردیبهشت 1391, 19:21 عصر
درست شده فقط اگه میشه کاری کنید Alignment بشود Center و این کد رو هم توش جا بدید در ضمن فقط خط اول رو اعمال میکنه و مثلاً در کد زیر خطوط بعد سر جایشان میمانند


With RichTextBox1
.Text = "ا" & vbNewLine & "ب" & vbNewLine & "ج"
.SelStart = 3
.SelLength = 1
.SelColor = vbRed
.SelStart = 0
End With


کد زیر را در مادول کد قرار بدین:
Private Const VK_RSHIFT = &HA1
Private Const VK_RCONTROL = &HA3
Private Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long

Public Sub RichTextBoxAlignment(RTB As RichTextBox, Alignment As SelAlignmentConstants)
Dim iScanRCtrl%, iScanRShift%, lShiftKC&
Dim iss%, isl%
Dim lKey&
With RTB
.SetFocus
'Set RTL direction
lShiftKC& = VK_RSHIFT
iScanRCtrl% = MapVirtualKey(VK_RCONTROL, 0)
iScanRShift% = MapVirtualKey(lShiftKC&, 0)
keybd_event VK_RCONTROL, iScanRCtrl%, 0, 0
keybd_event lShiftKC&, iScanRShift%, 0, 0
keybd_event VK_RCONTROL, iScanRCtrl%, KEYEVENTF_KEYUP, 0
keybd_event lShiftKC&, iScanRShift%, KEYEVENTF_KEYUP, 0
'===============================
'== Set alignment
'===============================
.SetFocus
iss% = .SelStart
isl% = .SelLength
.SelStart = 1
.SelLength = 100
.SelAlignment = Alignment
.SelStart = iss%
.SelLength = isl%
'===============================
'===============================
End With
End Sub
کدی مانند زیر هم، rtb را align-center میکند:
Private Sub Command1_Click()
RichTextBoxAlignment RichTextBox1, rtfCenter
End Sub


موفق باشید

Hassan2500
جمعه 22 اردیبهشت 1391, 19:21 عصر
من تمام مشکلم اینه که میخوام حرف سوم یا دوم تکست باکس قرمز بشه بصورت vbnewline هنگام کلیک کردن روی کامند و گفتن تکست باکس نمیشه و ریچ تکست باکس میشه آیا واقعاً تکست باکس نمیشه

محسن واژدی
جمعه 22 اردیبهشت 1391, 19:24 عصر
من تمام مشکلم اینه که میخوام حرف سوم یا دوم تکست باکس قرمز بشه بصورت vbnewline هنگام کلیک کردن روی کامند و گفتن تکست باکس نمیشه و ریچ تکست باکس میشه آیا واقعاً تکست باکس نمیشه
نه متاسفانه، TextBox این امکان را ندارد

Hassan2500
جمعه 22 اردیبهشت 1391, 19:31 عصر
فقط بگم کارت بیسته الحق که کارت بیسته همه چیت بیسته