PDA

View Full Version : سوال: مشکل در ساخت یک textbox سفارشی



vb.net2008
شنبه 16 مهر 1390, 00:02 صبح
سلام
این کد چه مشکلی داره

namespace MyTextBox
{
public enum TextType
{
NoLimit, Number, NonNumber
}
public partial class CustomTextBox : TextBox
{
public CustomTextBox()
{
InitializeComponent();
}

private TextType _OperationType;
private bool _ShortcutsEnabled;

public override bool ShortcutsEnabled
{
get
{
return _ShortcutsEnabled;
}
set
{
this._ShortcutsEnabled = value;
}
}
public TextType OperationType
{
get
{
return _OperationType;
}
set
{
_OperationType = value;
}
}


protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
switch (this.OperationType)
{
case TextType.NoLimit:
break;
case TextType.Number:
if (((e.KeyChar > '9' || e.KeyChar < '0') || (e.KeyChar == (char)32) || (char.IsControl(e.KeyChar)) && (e.KeyChar != (char)8)))
{ e.Handled = true; } break;
case TextType.NonNumber:
if (!(e.KeyChar > '9' || e.KeyChar < '0'))
{
e.Handled = true;
}
break;
}

System.Globalization.CultureInfo farsi = new System.Globalization.CultureInfo("fa-IR");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(farsi);
}
}


وقتی اولین کاراکتر رو توش وارد می کنم خطای
Object reference not set to an instance of an object.

jeson_park
شنبه 16 مهر 1390, 00:59 صبح
سلام
این خطا رو در کجا می ده؟
ببینید این خطا مربوط می شه به زمانی که شما یک شی رو با new بهش حافظه اختصاص ندین
مثلا به جای
Class my = new Class()
بنویسید
class my;
my.m1();

vb.net2008
شنبه 16 مهر 1390, 09:02 صبح
اینو خودم میدونم.
تو خط Application.Run(new Form1()); در فایل Program.cs

vb.net2008
شنبه 16 مهر 1390, 09:33 صبح
ببینید روی این قطعه مشکل داره

public override bool ShortcutsEnabled {
get
{
return _ShortcutsEnabled;
}
set
{
this._ShortcutsEnabled = value;
}
}


چون وقتی این قسمت رو پاک می کنم درست میشه.
من می خوام وقتی textbox رو روی فرم می کشم خصوصیت ShortcutsEnabled مقدار false داشته باشه. روش من اشتباهه؟؟