PDA

View Full Version : مشکل با نمایش MessageBox



VisualStudio
پنج شنبه 28 تیر 1386, 19:17 عصر
من یک متغییر دارم که دورن یک حلقه هست که این متغییر مثلا سه با بار پشت سر هم (تعداد مشخص نیست) مقدار میگیره و در همان حلقه چک می کنه اگر این مقدار درست نباشه یک مسیج باکس که در آن یک پیغام هست نشون می ده حالا این سه بار پیام نشان میده من میخوام که یکبار نمایش بده و حتی زمانی هم که شرط برقرار است همان تعداد پیام را نشان می دهد چطور این مشکل را حل کنم

eyes_shut_number1
پنج شنبه 28 تیر 1386, 21:10 عصر
messagebox رو بیرون حلقه بذار!
یه مقدارم تعریف کن که اگه True بود msgbox رو نشون بده اگه نه که هیچ
فکر کنممنظورت یان بود
البته میتونی پیغم رو توی حلقه بذاری به شرط این که واسه بار اول که نشون داده شد EXIT Sub کنی
اگه منظورتون چیزه دیگه ای بگید لطفا

VisualStudio
پنج شنبه 28 تیر 1386, 23:41 عصر
البته میتونی پیغم رو توی حلقه بذاری به شرط این که واسه بار اول که نشون داده شد EXIT Sub کنی
اگه منظورتون چیزه دیگه ای بگید لطفا

فکر کنم شما درست متوجه شدید اگر امکن داره این روش را بیشتر توضیح بدید

eyes_shut_number1
جمعه 29 تیر 1386, 00:17 صبح
راستش دو تا راه دارین
.اول این که توی حلقه هر جا که اشتباه شد شرط(برقرار نبود) Messagebox رو نشون بدین و با دستور Exit Sub یا Exit For
از حلقه یا ساب روتین بیاین بیرون

ForiAsInteger = 0 To 10
if (شرطبرقرارنبود ) then
MsgBox("Error")
ExitFor'Exit Sub
EndIf
Next

راه دوم اینه که Messagebox رو بیرون حلقه بذاری و یه متغیر بولین تعریف کنی که اگر شرط اشتباه بود اونو فالس کنه

DimtempAsBoolean = True
ForiAsInteger = 0 To 10
if (شرطبرقرارنبود ) then
temp = False
EndIf
Next
Iftemp = FalseThen
MessageBox.Show("errror")
EndIf

امید وارم همین بوده باشه!

VisualStudio
جمعه 29 تیر 1386, 01:21 صبح
متشکر از راهنمایی شما مشکل من حل شد اما زمانی هم که شرط برقرار است و اون دستور مورد نظر انجام میشه یکبار نشان می دهد

VisualStudio
جمعه 29 تیر 1386, 01:27 صبح
دوست عزیز فکر کنم اگر ان تکه کد را بزارم بهتر هست من از دیتابیس داده هام را می گیرم
و مجبور هستم برای گرفتن یوزرنیم و پسورد از دیتابیس استفاده کنم به دلایلی
این هم کد


DReader1 = cmd1.ExecuteReader
DoWhile DReader1.Read()
Uname = DReader1("Username".ToString)
Pword = DReader1("Password".ToString)
If Uname = txtUser.Text And Pword = txtPass.Text Then
MainFrm.Show()
Me.Hide()
Else
radboly = True
EndIf
Loop
If radboly = TrueThen
MessageBox.Show("کلمه عبور یا نام کاربری شما اشتباه می باشد , لطفا مجددا وارد کنید ", _
"اخطار", MessageBoxButtons.OK, MessageBoxIcon.Warning)
EndIf

eyes_shut_number1
جمعه 29 تیر 1386, 11:21 صبح
فرقی نداره دوتاش یکیه!
یکی پیغم تو حلقه میده یکی بیرون
باید کدی که اینجا زدین درست کار کنه
درسته؟

VisualStudio
جمعه 29 تیر 1386, 13:18 عصر
فرقی نداره دوتاش یکیه!
یکی پیغم تو حلقه میده یکی بیرون
باید کدی که اینجا زدین درست کار کنه
درسته؟

نه این مشکل را داره


متشکر از راهنمایی شما مشکل من حل شد اما زمانی هم که شرط برقرار است و اون دستور مورد نظر انجام میشه باز یکبار MsgBox را نشان می دهد

eyes_shut_number1
جمعه 29 تیر 1386, 13:35 عصر
اهان
ببین موقعی که متغیر radboly رو تعریف میکنی فالسش کن

dim radboly as boolean = False
یا این کارو بکن


DReader1 = cmd1.ExecuteReader
DoWhile DReader1.Read()
Uname = DReader1("Username".ToString)
Pword = DReader1("Password".ToString)
radboly = False
If Uname = txtUser.Text And Pword = txtPass.Text Then
MainFrm.Show()
Me.Hide()
Else
radboly = True
EndIf
Loop
If radboly = TrueThen
MessageBox.Show("کلمه عبور یا نام کاربری شما اشتباه می باشد , لطفا مجددا وارد کنید ", _
"اخطار", MessageBoxButtons.OK, MessageBoxIcon.Warning)
EndIf

فکر کنم مشکل همین بشه اگر حل نشد بگید .