PDA

View Full Version : حرفه ای: نمایش پیغام خطا به کارب بر روی فرم در برنامه



oliya24
جمعه 28 مرداد 1390, 22:17 عصر
سلام دوستان ببینید سوالم رو با یه مثال میگم

فرض کنید یه برنامه نوشتید در روی فرم برنامه یه تکس باکس هست که از نوع عددی تعریف شده

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

خوببببببببببببببببببببببب

یه راه که من توش موندم اینه که چطور میشه :این پیغام خطا روی فرم نشان دهیم ؟؟؟؟

milad.biroonvand
شنبه 29 مرداد 1390, 10:36 صبح
از یک lable استفاده کن .

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

Saman_12
شنبه 29 مرداد 1390, 11:43 صبح
برای این کار میتونید از ابزار Error Provider خود .Net استفاده کنید.(برای اطلاعات بیشتر لطفا جستجو نمایید.)

RamezanBeik
شنبه 29 مرداد 1390, 13:30 عصر
درود بر شما.
من سوال شما رو درست متوجه نشدم.
اما شما می توانید با تابع isNumeric و یک if در رویداد text_change استفاده کنید.
به این نمونه که براتون قرار می دم توجه کنید حتما مشکلاتون حل می شه.

PrivateSub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If IsNumeric(TextBox1.Text) Then
Else
MsgBox("لطفا عدد وارد کنید", MsgBoxStyle.OkOnly OrMsgBoxStyle.MsgBoxRight OrMsgBoxStyle.Information, "خطا")
TextBox1.Clear()
TextBox1.Focus()
EndIf
EndSub

البته این فقط یک راه حله.
بدرود

oliya24
شنبه 29 مرداد 1390, 13:53 عصر
دوست من بسیار ممنونم از شما اما من میخوام که خطا روی فرم نمایش داده بشه نه توی مسج باکس
به هر حال بازم از اینکه به من کمک کردید متشکرم

monirprogram
شنبه 29 مرداد 1390, 14:21 عصر
میتونی از تابع Drawtext از توابع کلاس System.Drawing اتفاده کنی. کافیه موقعیت دلخواه رو بهش بدی، هر جا خواستی برات مینویسه

oliya24
شنبه 29 مرداد 1390, 15:02 عصر
میتونید یه مثال بزنید من فک کنم این تابع مشکل من رو حل میکنه
خواهش میکنم

M.KH-SH
یک شنبه 30 مرداد 1390, 09:27 صبح
دوسته عزیز در هنگام طراحی فرم یک لیبل در قسمتی که دوست دارید خطا گرفته بشه بزارید.
خاصیت visible اونو برابر با False کنید
یک تایمر هم قرار دهید.
شرط برناه رو به اینصورت بنویس که اگه حرف وارد شد لیبل خطا visible=True و timer.Enabled=true بشه.
درون یامر بنویس که بعد از 1 دقیقه لیبل حذف visible=false بشه و تایمر هم Enabled=false بشه

این راحت ترین روش برای این کار هستش.

monirprogram
یک شنبه 30 مرداد 1390, 15:50 عصر
تابع DrawSting بود.

dim str as string="matn delkhah"
dim g as graphics
g=form1.creategraphics
g.drawstring(str,Font,Brush.red,x,y)


str:متن دلخواه
Font:ثابت تعینی کننده فونت سیستم
Brush:تعیین کننده قلم. میتون یجای Red، از هر رنگ دیگه ای استفاده کنی
x,y:مختصات نقطه

اگر مشکلی داشتی بگو برات یه نمونه برنامه ساده بزارم

oliya24
دوشنبه 31 مرداد 1390, 00:10 صبح
سلام دوست گرامی moniprogram من نتونستم این کد را اجرا کنم میشه یه برنامه ساده بگذاری تا بیبینم چطوریه کار کردن با این تابع
ممنون میشم

M.KH-SH
دوشنبه 31 مرداد 1390, 00:18 صبح
سلام دوست من به این صورت بنویس ::::


Dim str As String = "matn delkhah"
Dim g As Graphics
g = Me.CreateGraphics
g.DrawString(str, Font, Brushes.Blue, 51, 12)

به جای 51,12 مختصاتی رو بده که می خوای پیغام نمایش داده بشه

monirprogram
سه شنبه 01 شهریور 1390, 14:30 عصر
7425374253
نمونه برنامه

h_a_m_i_d
سه شنبه 01 شهریور 1390, 14:47 عصر
سلام دوست عزیز اگر برای تکست باکس خود عملیات ریاضی در نظر دارید بهتر است از تابع on error استفاده کنید که فهم اون بسیار راحت تره شما میتونین با این دستور کارتون رو انجام بدین
on error goto m
دستورات
دستورات
exit sub
:m
دستوراتی که در صورت ایجاد خطا باید اجرا شود
مانند دستوری که در نظر داشتید

Behzad_MCP
سه شنبه 01 شهریور 1390, 14:49 عصر
برای این کار میتونید از ابزار Error Provider خود .Net استفاده کنید.(برای اطلاعات بیشتر لطفا جستجو نمایید.)

با تشکر از راههایی که دوستان ارایه دادند ولی روش استاندارد برای نمایش خطا در هنگام Data Validation همین کامپاننت Error Provider هست