PDA

View Full Version : سوال: مشکل در استفاده از MaskedTextBox



ندا2611
جمعه 11 بهمن 1387, 08:13 صبح
برای ماسک کردن اعداد از کنترل MaskedTextBox استفاده میکنم اما به دلیل وجود کارکترهای
_ و / برام مشکلاتی بوجود آمده

1-اگر نخوام کارکترهای / و _ در DataBase ذخیره بشن چکار کنم؟

2-به دلیل وجود این کارکترها دیگه Text خالی از کارکتر نیست .چطور این کارکترها را نادیده بگیرم تا برنامه متوجه خالی بودن Text شود و Error لازم را ایجا کند؟

با سپاس

ACorvinus
جمعه 11 بهمن 1387, 09:18 صبح
برای ماسک کردن اعداد از کنترل MaskedTextBox استفاده میکنم اما به دلیل وجود کارکترهای
_ و / برام مشکلاتی بوجود آمده

1-اگر نخوام کارکترهای / و _ در DataBase ذخیره بشن چکار کنم؟

2-به دلیل وجود این کارکترها دیگه Text خالی از کارکتر نیست .چطور این کارکترها را نادیده بگیرم تا برنامه متوجه خالی بودن Text شود و Error لازم را ایجا کند؟

با سپاس

منظورت چیه؟
میخوای کاربر رو به وارد کردن چه چیزی محدود کنی؟ ( منظورم اینه که میخوای کاربرت فقط عدد وارد کنه یا ... ؟ )

rooshan2008
جمعه 11 بهمن 1387, 09:19 صبح
سلام
1- شما میتونید حروف مورد نظر رو Replaceکنید:
Replace(mtb.Text, " ", "") - از بین بردن جای خالی
Replace(mtb.Text, "/ ", "") از بین بردن
....
2) متونید بعد از Replace کردن کاراکترها و گرفتن Len(طول رشته) با یه شرط فهمید داده مورد نظر شما وارد شده یا نه

ندا2611
سه شنبه 27 اسفند 1387, 12:12 عصر
در استفاده از این کنترل به ی مشکل برخورد کردم و اون اینکه کاربر هرجای این کنترل کلیک کنه اشاره گر همون جا قرار میگیره و اگه حواسش نباشه که باید اشاره گر در ابتدای کنترل باشه ناچار میشه هر چی تایپ کرده پاک کنه و از اول بنویسه.میخوام بپرسم میشه کاری کرد که هر وقت کاربر روی کنترل کلیک کرد اشاره گر به ابتدای کنترل بره؟البته فکر کنم یه مشکل جدید بوجود بیاد و اون اینکه اگه بخواد 1 کاراکترو پاک کنه ناچار بشه همشو پاک کنه؟
نمیدونم چکار کنم.مشکل من در تایپ کردن تاریخه.

ali_md110
چهارشنبه 28 اسفند 1387, 14:04 عصر
Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
TextBox1.SelectionStart = 0
End Sub
به نظر من از یک دیتاگرایدویو با سه ستون برای ورود تاریخ استفاده کن یا یک User control بساز شبیه به یک
ماسک ادیت

sh
پنج شنبه 29 اسفند 1387, 10:08 صبح
برای اینکه متن موجود در کنترل MaskedTextBox را بدون کاراکترهای اضافه دریافت کنید در Form Load این کد را قرار بدهید



MaskedTextBox2.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals

ندا2611
یک شنبه 02 فروردین 1388, 10:15 صبح
Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
TextBox1.SelectionStart = 0
End Sub
به نظر من از یک دیتاگرایدویو با سه ستون برای ورود تاریخ استفاده کن یا یک User control بساز شبیه به یک
ماسک ادیت

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

anooshiran
دوشنبه 03 فروردین 1388, 07:07 صبح
سلام دوست عزيز





Dim sqlCon As New SqlClient.SqlConnection("Integrated Security=SSPI;Data Source=.")
Dim sqlDtAdp As New Data.SqlClient.SqlDataAdapter("", sqlCon)
Dim sqlCom As New SqlClient.SqlCommand("", sqlCon)
If sqlCon.State = ConnectionState.Closed Then sqlCon.Open()
Dim dbase As String = "MyDataBase.dbo."
Dim tName As String = "MyTableName"
sqlCom.CommandText = "INSERT INTO " & dbase & tName & " (_Date,Fild2,Fild3,....,....,....) " & _
"VALUES (@_Date,@Fild2,@Fild3,@.....,@.....,@.....)"

With sqlCom.Parameters
.Clear()
.AddWithValue("@_Date", DataGridView1.Item("yy", 0).Value & "/" & _
DataGridView1.Item("mm", 0).Value & "/" & _
DataGridView1.Item("dd", 0).Value)
.AddWithValue("@Fild1", "Fild2Value")
.AddWithValue("@Fild2", "Fild3Value")
.AddWithValue("@.....", "Value")
.AddWithValue("@.....", "Value")
.AddWithValue("@.....", "Value")
End With
sqlCom.ExecuteNonQuery()
sqlCon.Close()




اگر Date_ را فيلد تاريخ در نظر بگيريم و ستونهاي datagridview به ترتيب yy براي سال و mm براي ماه و dd براي روز باشند. به طرق فوق مي تواني مقادير اين سه ستون را Concat كرده و در فيلد Date_ قرار دهي