نمایش نتایج 1 تا 6 از 6

نام تاپیک: خطای NullReferenceException هنگام فراخوانی یک پروپرتی از یک کلاس دیگر

  1. #1

    خطای NullReferenceException هنگام فراخوانی یک پروپرتی از یک کلاس دیگر

    سلام من تو برنامم دو تا فورم دارم که از بک فورم یک نمونه ساختم و میخوام به پروپرتی ها و متودهاش مقدار بدم که یکی از اونا مقدارش در ابتدا null است وقتی نرم افزار اجرا میشه خطای NullReferenceException میده کد انتصابا هم بصورت زیر چجوری باید این ارور و بر طرف کنم؟تو فرم دوم این کدو دارم
                if (checkBox2.Checked == true)            {                Form1 formOne = new Form1();                formOne.fileExtensions[0] = comboBox1.SelectedValue.ToString();                formOne.VertifyRequests();            }
    تو فرم اول هم میخوام از پروپرتی زیر تو فرم دوم استفاده کنم
    public string[] fileExtensions = null;

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: خطای NullReferenceException هنگام فراخوانی یک پروپرتی از یک کلاس دیگر

    public string[] fileExtensions = new string[5];

  3. #3

    نقل قول: خطای NullReferenceException هنگام فراخوانی یک پروپرتی از یک کلاس دیگر

    نقل قول نوشته شده توسط parvizwpf مشاهده تاپیک
    public string[] fileExtensions = new string[5];
    این کار رو هم کردم ولی بازم همون خطا و میده

  4. #4
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: خطای NullReferenceException هنگام فراخوانی یک پروپرتی از یک کلاس دیگر

    میشه کدهاتون رو کامل تر و تمیز تر بذارید و بگید دقیقا کجا داره این ارو رو میده؟ شما دو راه برای ارسال مقداری یه کلاس دیگه دارید:
    1- از طریق سازنده بعنی مقدار آرایه ای رو به سازنده کلاس دیگه بفرستید.
    2- ساخت یک آرایه static برای کل برنامه و استفاده از اون در هر کلاسی.

  5. #5

    نقل قول: خطای NullReferenceException هنگام فراخوانی یک پروپرتی از یک کلاس دیگر

    کلاس فرم زیر کلاس کامل فرمی که من میخوام تو فرم دوم از نمونش استفاده کنم

    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }


    private void button1_Click(object sender, EventArgs e)
    {
    // Showing folderBrowserDialog for getting specific directory
    DialogResult result = folderBrowserDialog1.ShowDialog();


    if (result == DialogResult.OK)
    {
    textBox1.Text = folderBrowserDialog1.SelectedPath;
    }
    }


    private void button3_Click(object sender, EventArgs e)
    {
    Application.Exit();
    }


    public string[] fileExtensions = null;


    private void button2_Click(object sender, EventArgs e)
    {
    VertifyRequests();
    }


    public void VertifyRequests()
    {
    // Error for empty textbox
    if (textBox1.Text == "")
    {
    MessageBox.Show("لطفا مسیر مورد نظر خود را برای جست و جو انتخاب کنید"
    , "خطای انتخاب مسیر"
    , MessageBoxButtons.OK
    , MessageBoxIcon.Error);
    }


    // Error for invalide value for numericUp and Down
    if (numericUpDown1.Value > 3000000 || numericUpDown2.Value < 10)
    {
    MessageBox.Show("سایز فایل انتخابی باید بین 10 تا3000000 کیلوبایت باشد"
    , "ارور سایز فایل"
    , MessageBoxButtons.OK
    , MessageBoxIcon.Error);
    }
    if (System.IO.Directory.Exists(textBox1.Text))
    {
    RecognizeExtensionsArguments();
    }
    }


    private void RecognizeExtensionsArguments()
    {
    // Getting DirectoryInfo from textbox Which Selected in folderBrowserDialog
    System.IO.DirectoryInfo targetDirectory = new System.IO.DirectoryInfo(textBox1.Text);


    if (fileExtensions != null)
    {
    checkBox1.Checked = false;
    checkBox2.Checked = false;
    checkBox3.Checked = false;
    checkBox4.Checked = false;


    }
    else
    {
    // if checkBoxes was checked then send that file extensions arguments to GetFileTypeName
    // Method
    if (checkBox1.Checked)
    {
    fileExtensions = new string[] { ".mp3" };
    targetDirectory.GetFileTypeName(minNumeric: numericUpDown2.Value
    , maxNumeric: numericUpDown1.Value, extensions: fileExtensions);
    }
    if (checkBox2.Checked)
    {
    fileExtensions = new string[] { ".mkv", ".mp4", ".mov", ".mpeg2" };
    targetDirectory.GetFileTypeName(minNumeric: numericUpDown2.Value
    , maxNumeric: numericUpDown1.Value, extensions: fileExtensions);
    }
    if (checkBox3.Checked)
    {
    fileExtensions = new string[] { ".jpj", ".png" };
    targetDirectory.GetFileTypeName(minNumeric: numericUpDown2.Value
    , maxNumeric: numericUpDown1.Value, extensions: fileExtensions);
    }
    if (checkBox4.Checked)
    {
    fileExtensions = new string[] { ".txt", ".doc", ".pdf" };
    targetDirectory.GetFileTypeName(minNumeric: numericUpDown2.Value
    , maxNumeric: numericUpDown1.Value, extensions: fileExtensions);
    }
    }
    }


    // Open OtherOption form if button4 was Clicked
    private void button4_Click(object sender, EventArgs e)
    {
    OtherOption OtherOptionForm = new OtherOption();
    OtherOptionForm.Show();
    }
    }


    و کلاس زیر کلاسی که میخوام تو اون از پروپرتی fileExtensions کلاس فرم اول استفاده کنم

        public partial class OtherOption : Form    {
    public OtherOption()
    {
    InitializeComponent();
    label1.Enabled = false;
    label2.Enabled = false;
    textBox1.Enabled = false;
    comboBox1.Enabled = false;
    }


    private void button2_Click(object sender, EventArgs e)
    {
    this.Close();
    }


    private void button1_Click(object sender, EventArgs e)
    {





    if (checkBox1.Checked == true)
    {


    }


    if (checkBox2.Checked == true)
    {
    Form1 formOne = new Form1();
    formOne.fileExtensions[0] = comboBox1.SelectedValue.ToString();
    formOne.VertifyRequests();
    }
    this.Close();
    }


    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
    if (!checkBox1.Checked)
    {
    label1.Enabled = false;
    textBox1.Enabled = false;
    }


    if (checkBox1.Checked)
    {
    label1.Enabled = true;
    textBox1.Enabled = true;
    }
    }


    private void checkBox2_CheckedChanged(object sender, EventArgs e)
    {
    if (!checkBox2.Checked)
    {
    label2.Enabled = false;
    comboBox1.Enabled = false;
    }


    if (checkBox2.Checked)
    {
    label2.Enabled = true;
    comboBox1.Enabled = true;
    }
    }
    }


    که چه مقدار اولیشو null کنم چه مثلا
    new string[10]

    بازم ارور NullReferenceException رو در قسمت کد زیر میده


    formOne.fileExtensions[0] = comboBox1.SelectedValue.ToString();

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    پونک
    سن
    42
    پست
    490

    نقل قول: خطای NullReferenceException هنگام فراخوانی یک پروپرتی از یک کلاس دیگر

    معلومه که باید این خطا رو بده، شما از Form1 نمونه سازی کردین و قبل از اینکه آرایه FileExtensions رو تو فضای Heap بسازین خواستین توش مقدار بریزین! این آرایه باید با new تو Heap ساخته بشه که این کار بعد از اجرا شدن متد RecognizeExtensionsArguments انجام میشه که خود این متد هم بعد از کلیک Button2 انجام میگیره، شما قبل از Show کردن فرم ۱ و کلیک روی button2 نمیتونین تو FileExtensions مقدار بریزین!

تاپیک های مشابه

  1. خطا در هنگام فراخوانی سایت
    نوشته شده توسط MH2538 در بخش ASP.NET Web Forms
    پاسخ: 13
    آخرین پست: یک شنبه 14 مرداد 1386, 13:58 عصر
  2. خطا در هنگام فراخوانی سایت
    نوشته شده توسط somayeh hallaj در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 20 خرداد 1386, 14:06 عصر
  3. خطا هنگام فراخوانی سایتی که یک صفحه خالی بیشتر نداره
    نوشته شده توسط rezaei manesh در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 01 اسفند 1385, 13:18 عصر
  4. خطای اکتیواکس هنگام اجرای برنامه
    نوشته شده توسط amrabady در بخش Access
    پاسخ: 1
    آخرین پست: چهارشنبه 27 دی 1385, 08:51 صبح
  5. خطای در هنگام ثبت
    نوشته شده توسط alireza244 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 12 دی 1385, 16:47 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •