ممنون از راهنماییتون ولی اگه دقت کنین بالا نوشتم که حتی ویندوز رو هم عوض کردم و بعد از اون سورس هام رو روی یه سیستم دیگه امتحان کردم ولی بازم همون ارور رو داد
Printable View
این رو هم بالا پیشنهاد دادن که اونم توضیح دادم که در حالت عادی مشکلی نداره فقط نمیتونم هیچ تغییراتی رو پروژه بدم
به طور مثال یه کلید اظافه میکنم و هیچ کدی هم براش نمینویسم وقتی میخوام ذخیره کنم این ارور رو میده
این رو هم بالا پیشنهاد دادن که اونم توضیح دادم که در حالت عادی مشکلی نداره فقط نمیتونم هیچ تغییراتی رو پروژه بدم
به طور مثال یه کلید اظافه میکنم و هیچ کدی هم براش نمینویسم وقتی میخوام ذخیره کنم این ارور رو میده
دومین سوالم مربوط به بایندینگ کردن کمبوباکس به دیتابیس هست
selectvalue درست اجرا میشه اما بعد از اتمام خطا میده
این کد قسمت هست
private void cmbindustry_SelectedIndexChanged(object sender, EventArgs e)
{
codeindustry = (int)cmbindustry.SelectedValue;
this.companyTableAdapter.codecompany(this.bourseDa taSetcmbcompany.company, codeindustry);
//this.companyTableAdapter.codecompany(this.bourseDa taSetcmbcompany.company, (int)cmbindustry.SelectedValue);
}
Object reference not set to an instance of an object.
سلام
از رخداد زیر استفاده کن، مشکلت حل می شه
SelectionChangeCommitted(object sender, EventArgs e)
ممنون اما هر کاری کردم کمکی نکرد و بازم پیغام هست
چه به صورت ویژوال انتخاب کردم ارور داد و همینکه دستی کدش رو درست کردم بازم مشکل داشت
ببخشید نمیدونم متوجه منظورتون شدم یا نه
اما فکر کنم شما می خواید مقدار انتخابی کمبو باکس رو به دستور پایینی که نوشتین پاس بدید؟درسته ؟
اگه اینجوریه خوب تو همون رویدادتون اگه index عنصر انتخابی رو میخوایید از این دستور استفاده کنید:
codeindustry = cmbindustry.Selectedindex;
اگه هم مقدارشو میخوای از این دستور استفاده کنید:
codeindustry = cmbindustry.text;
امیدوارم درست متوجه شده باشم
ممنون بابت پاسختون اما بزارید روشن تر بگم
من چند تا کمبوباکس تو فرم دارم
حالا کمبوباکس دوم وابسته هست به اولی و سومی به دومی
حالا بر چه اساسی
مثلا
من تو کمبوباکس اول یک گزینه رو انتخاب می کنم این گزینه داخل دیتابیس با یک عدد مشخص هست مثلا عدد 1 پس مقدار selectvalue من برابر هست با 1
حالا من در کمبوباکس دوم مقادیری رو لود می کنم از دیتابیس که مقدار یک فیلدیشون برابر 1 باشه مثلا برای مثال کد شرکت هایی که در گروه 1 هستن
پس در رویداد indexchange کمبوباکس اول من این selectvalue رو میگیرم و می دم به یک کوئری تا فقط اون اطلاعات رو لود کنه
برای مثال کد کوئری
SELECT namecompany, codecompany, codem, codmain FROM dbo.company where codem=@valuei
و کد کمبوباکس اول هم
private void cmbindustry_SelectedIndexChanged(object sender, EventArgs e)
{
codeindustry = (int)cmbindustry.SelectedValue;
this.companyTableAdapter.codecompany(this.bourseDa taSetcmbcompany.company, codeindustry);{
ولی این خطا رو میده و حتی به راهنمایی دوستمون در قسمت properties در رویداد SelectionChangeCommitted کمبوباکس اول رو انتخاب کردم بازم مشکل حل نشد
برای اینکه مطمئن بشم خودم یه کد دیگه به این شکل زدم که شک دارم درسته اما اروری هم نمی داد
در کمبوباکس اول این کد رو وارد کردم
cmbindustry.SelectionChangeCommitted += cmbindustry_SelectionChangeCommitted;
و این کد رو داخل تابع رویداد جدید وارد کردم
private void cmbindustry_SelectionChangeCommitted(object sender, EventArgs e)
{
ComboBox cmbindustry = (ComboBox)sender;
//if ((bool)cmbindustry.SelectedValue == true) { cmbindustry.SelectedValue = cmbindustry.SelectedValue; }
codeindustry = (int)cmbindustry.SelectedValue;
this.companyTableAdapter.codecompany(this.bourseDa taSetcmbcompany.company, codeindustry);
}
البته به این تابع شک دارم دقیقا نمی دونستم چکارش کنم اما بازم خطا رو دارم
برای هر کمبو اول چک کن تعداد آیتم هاش صفر نباشد:
private void cmbindustry_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbindustry.Items.Count ==0 ) return;
codeindustry = (int)cmbindustry.SelectedValue;
this.companyTableAdapter.codecompany(this.bourseDa taSetcmbcompany.company, codeindustry);
}
ممنون بابت پاسخت اما بازم ارور رو میده
ولی به این شکل درست شد ممنون بابت راهنماییت
if (valuei == 0)
{
codeindustry = (int)cmbindustry.SelectedValue;
}
با سلام.
ابتدا چک کنید SelectedValue برابر NULL نباشد:
void Combo_SelectedIndexChanged(object sender,...e)
{
if(combo.SelectedValue==NULL)
return;
//else
//......
}
سلام دوستان
یه groupbox داخل یه groupbox دیگه دارم میخوام مقدار کنترلای groupbox داخلی و تغییر بدم اما ارور میده. برا خارجیه این ارورو نمیده.
کد
foreach (System.Windows.Forms.Control myControl in this.Controls["groupBox4"].Controls)
{
if (myControl is TextBox)
{
(myControl).Text = "";
}
else if (myControl is ComboBox)
{
((ComboBox)(myControl)).SelectedIndex = 0;
}
else if (myControl is CheckBox)
{
((CheckBox)(myControl)).Checked = false;
}
}
ارورش
Object reference not set to an instance of an object.
مرسی:لبخندساده:
نکته اول: چرا به این صورت نمی نویسی
foreach (System.Windows.Forms.Control myControl groupBox4.Controls)
نکته دوم :به این صورت تغییرش بده
var v = groupBox1.Controls["groupBox2"].Controls;
foreach (var item in v)
{
}
من کدام رو از اکسس به اس کیوال تغییر دادم و حالا موقع اجرای برنامه ایراد می گیره. با اکسس هیچ مشکلی نبود.
ارورش هم در عنوان نوشته ام.
خود ارور رو در google سرچ کردم ولی چون انگلیسی بود چیزی متوجه نشدم.
تمام پرایمری کی ها و روابط جداول رو قرار دادم.
private void SearchLetters()
{
try
{
SqlConnection objconnection =
new SqlConnection("Data Source=.;Initial Catalog=Radman;Integrated Security=True;" +
" User ID=sa;Password=123456;");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objconnection;
Condition = Condition.Trim();
if (Condition.StartsWith("AND")) Condition = Condition.Substring(3);
string cmd = @"SELECT tblErsali.ID,tblDaryafti.ID,tblErsali.LetterID,Sen derUserName,Subject,ReceiverUserName
,tabaghe,jahat,SendDate,SendTime,ErjaDate,ErjaTime ,mohlat,Dayes,bazgasht,peyrov,
IsRead,IsVarede
FROM tblErsali INNER JOIN tblDaryafti ON tblErsali.ID=tblDaryafti.LetterID WHERE " + Condition;
objDataAdapter.SelectCommand.CommandText = cmd;
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
//MessageBox.Show(cmd);
objconnection.Open();
objDataAdapter.Fill(objDataSet, "tblLetter");
objconnection.Close();
dataGridView1.DataSource = objDataSet.Tables["tblLetter"];
dataGridView1.Columns["tblDaryafti.ID"].Visible = false;
dataGridView1.Columns["LetterID"].HeaderText = "شماره نامه";
dataGridView1.Columns["tblErsali.ID"].Visible = false;
dataGridView1.Columns["SenderUserName"].HeaderText = "فرستنده";
dataGridView1.Columns["Subject"].HeaderText = "موضوع";
dataGridView1.Columns["tabaghe"].HeaderText = "نوع";
dataGridView1.Columns["ErjaDate"].HeaderText = "تاریخ ارجاع نامه";
dataGridView1.Columns["ErjaTime"].HeaderText = "ساعت ارجاع نامه";
dataGridView1.Columns["SendDate"].HeaderText = "تاریخ ثبت نامه";
dataGridView1.Columns["SendTime"].HeaderText = "ساعت ثبت نامه";
dataGridView1.Columns["bazgasht"].HeaderText = "بازگشت به نامه شماره";
dataGridView1.Columns["peyrov"].HeaderText = "پیرو نامه شماره";
dataGridView1.Columns["ReceiverUserName"].HeaderText = "گیرنده";
dataGridView1.Columns["jahat"].HeaderText = "جهت";
dataGridView1.Columns["mohlat"].HeaderText = "مهلت پاسخ";
dataGridView1.Columns["Dayes"].HeaderText = "مهلت پاسخ";
dataGridView1.Columns["IsRead"].HeaderText = "خوانده شده";
foreach (DataGridViewRow r in dataGridView1.Rows)
{
if (r.Cells["LetterID"].Value.ToString() == "")
r.Cells["LetterID"].Value = r.Cells["tblErsali.ID"].Value.ToString();
r.Cells["SenderUserName"].Value = Program.chk.GetFullName(r.Cells["SenderUserName"].Value.ToString());
r.Cells["ReceiverUserName"].Value = Program.chk.GetFullName(r.Cells["ReceiverUserName"].Value.ToString());
}
}
catch (Exception)
{
MessageBox.Show("در ارتباط با بانک اطلاعاتی مشکلی پیش آمده است", "خطا درون بانک اطلاعاتی",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
رو كدوم خط اين پيغامو ميده؟
این خط رو ببر بیرون یا آخر این بلاک احتمالا هنوز اون سطر مقداری نگرفته و شما سعی در مخفی کردنش دارید!!
امکان نداره خالی باشه چون اون فیلد پرایمری کی هستش.
این کدارو من تو بانک اطلاعاتی اکسس جواب گرفتم و یک ماهی بود که تست می کردم ولی حالا که بردم رو SQL این ارور رو داره می ده.
تمامی relationهارو هم درست کردم.
برای این مخفی اش می کنم برای اینکه نیازی نیست کاربر اونو ببینه ولی من به دلایلی اون رو نیاز دارم.
جدیداً این ارور هم میده: رو همون خط
ضمیمه 112642
رو این خط ارور میداد پاکش کردم:
dataGridView1.Columns["tblDaryafti.ID"].Visible = false;
بعد رو این خط ارور می داد که اینم پاکش کردم:
dataGridView1.Columns["tblErsali.ID"].Visible = false;
بعد رو این خط ارور داد که اینم پاکش کردم:
r.Cells["LetterID"].Value = r.Cells["tblErsali.ID"].Value.ToString();
بعد درست شد.
ولی من اونارو نیاز دارم. چیکارش کنم؟
دوست عزیز
احتیاج به پاک کردن نیست این خطایی که گذاشتین یعنی شی که شما سعی دارین باشی کارکنی هنوز ایجاد نشده معنی اش اینه که هنوز احتمالا گرید رو بصورت کامل پر نشده شما اینها رو بذار بعد یا خارج از این متد تست کن ببین چی میشه یه آزمایش کن با مسیج باکس ببین سعی کن یه سل از این ستون که مخفی اش کنی به مسیج باکس بفرست ببیبن چی نتیجه نمایش میده؟!
سلام
من یه قطعه کد پیدا کردم که یه دیتاگریدویو رو توی یه دیتاگرید ویوی دیگه کپی می کنه.
اما اگه یه خونه از دیتاگرید ویوی مبدا خالی باشه پیغام ارور میده و نمی تونه توی دیتاگرید ویوی مقصد کپی کنه
دیتاگریدویوی 1 مبدا و دیتاگریدویوی 2 مقصد است.
if (dataGridViewX2.Columns.Count == 0)
{
foreach (DataGridViewColumn dgvc in dataGridViewX1.Columns)
{
dataGridViewX2.Columns.Add(dgvc.Name, dgvc.HeaderText);
}
}
dataGridViewX2.Rows.Clear();
foreach (DataGridViewRow dgvr in dataGridViewX3.Rows)
{
List<string> cells = new List<string>();
foreach (DataGridViewCell dgvc in dgvr.Cells)
{
cells.Add(dgvc.Value.ToString());
}
dataGridViewX2.Rows.Add(cells.ToString());
به خطcells.Add(dgvc.Value.ToString());ارور میده
متن ارور: Object reference not set to an instance of an object.
ممنون میشم از راهنماییتون
سلام دوستان یه برنامه نوشتم وقتی به خط زیر میرسه خطای
Object reference not set to an instance of an object.رو میده میشه راهنماییم کنید.:گریه:
((PictureBox)(this.Controls["pbPlayer" + i.ToString()])).Visible = true;
با سلام
کدت رو تریس کن. احتمالا به ازای مقادیری از i کنترلی که میخواهی وجود نداشته باشه
سلام دوستان لطفا کمکم کنید
من دو بار vs2010 را پاک و مجددا نصب کرده ام اما مشکلم رفع نشده و خطای object reference not set to an instance of an object را می دهد
https://barnamenevis.org/image/png;ba...AASUVORK5CYII=
علت را توی پست ها گشتم اما نتونستم این مشکل را رفع کنم با اینکه در برنامه ام دو فرم و یک باتون قرار دادم هنگامی که برنامه اجرا شده را می بندم این خطا را می دهد خواهشا دوستانی که با این مشکل برخورد کرده اند بگویند چطور و با چه سورس کدی این مشکل را برطرف کنم
کد؟
عکس؟
کاری که میخواتسید انجام بدید و این اتفاق افتاده؟
دوست عزیز
این مشکل برای من در چند موقع رخ می ده
1 - هنگامی که فرم 2 را با showdialog باز می کنم و به محض بستن فرم اول که فرم دسترسی ام است این مشکل پیش میاد مجبور شدم از show استفاده کنم
2- حال هنگامی که فرم 2 را مینمایز می کنم با کلیک روی کلید customer از فرم 1 فرم مینمایز شده به نام فرم 2 ماکزیمایز شده برای بار دوم که فرم 2 انرا مینمایز می کنم و می خواهم از فرم 1 انرا ماکزیمایز یا نرمال کنم این مشکل پیش می اید
ضمیمه 112874ضمیمه 112875
[CSHARP][/CSHARP]
فرم 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.IO;
namespace Accounter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void glassButton7_Click(object sender, EventArgs e)
{
lsitem.Visible = true;
lsuser.Visible = false;
}
private void btncustomer_Click(object sender, EventArgs e)
{
Form2 customer = new Form2();
if (Application.OpenForms["Form2"] == null)
{
customer.Show();
}
else
{
Application.OpenForms["Form2"].WindowState = FormWindowState.Normal;
Application.OpenForms["Form2"].Activate();
}
}
private void Form1_Load(object sender, EventArgs e)
{
user.Focus();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (MessageBox.Show("آيا شما مي خواهيد از برنامه خارج شوید ؟", " خروج از برنامه", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
Application.Exit();
}
private void glassButton2_Click(object sender, EventArgs e)
{
}
}
}
فرم 2-------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Accounter
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
ra_code.Checked = true;
//disable();
}
public void disable()
{
//txt_adress.Enabled=false;
// txt_code.Enabled=false;
// txt_id.Enabled=false;
// txt_mobile.Enabled=false;
// txt_money.Enabled=false;
// txt_name.Enabled=false;
// txt_phone.Enabled=false;
//data.Enabled=false;
}
private void btn_search_Click(object sender, EventArgs e)
{
if (search.Visible) search.Visible = false;
else
{
search.Visible = true;
numericUpDown1.Focus();
}
}
private void ra_code_CheckedChanged(object sender, EventArgs e)
{
if (ra_code.Checked)
{
txt_searchname.Enabled = false;
txt_searchname.BackColor = Color.WhiteSmoke;
numericUpDown1.Enabled = true;
numericUpDown1.BackColor = Color.White;
data_search.Enabled = false;
data_search.BackColor = Color.WhiteSmoke;
}
}
private void ra_customer_CheckedChanged(object sender, EventArgs e)
{
if (ra_customer.Checked)
{
txt_searchname.Enabled = true;
txt_searchname.BackColor = Color.White;
txt_searchname.Focus();
numericUpDown1.Enabled = false;
numericUpDown1.BackColor = Color.WhiteSmoke;
data_search.Enabled = false;
data_search.BackColor = Color.WhiteSmoke;
}
}
private void ra_data_CheckedChanged(object sender, EventArgs e)
{
if (ra_data.Checked)
{
txt_searchname.Enabled = false;
txt_searchname.BackColor = Color.WhiteSmoke;
numericUpDown1.Enabled = false;
numericUpDown1.BackColor = Color.WhiteSmoke;
data_search.Enabled = true;
data_search.BackColor = Color.White;
}
}
private void btn_new_Click(object sender, EventArgs e)
{
// enable();
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.IO;
namespace Accounter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void glassButton7_Click(object sender, EventArgs e)
{
lsitem.Visible = true;
lsuser.Visible = false;
}
private void btncustomer_Click(object sender, EventArgs e)
{
Form2 customer = new Form2();
if (Application.OpenForms["Form2"] == null)
{
customer.Show();
}
else
{
Application.OpenForms["Form2"].WindowState = FormWindowState.Normal;
Application.OpenForms["Form2"].Activate();
}
}
private void Form1_Load(object sender, EventArgs e)
{
user.Focus();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (MessageBox.Show("آيا شما مي خواهيد از برنامه خارج شوید ؟", " خروج از برنامه", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
Application.Exit();
}
private void glassButton2_Click(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Accounter
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
ra_code.Checked = true;
//disable();
}
public void disable()
{
//txt_adress.Enabled=false;
// txt_code.Enabled=false;
// txt_id.Enabled=false;
// txt_mobile.Enabled=false;
// txt_money.Enabled=false;
// txt_name.Enabled=false;
// txt_phone.Enabled=false;
//data.Enabled=false;
}
private void btn_search_Click(object sender, EventArgs e)
{
if (search.Visible) search.Visible = false;
else
{
search.Visible = true;
numericUpDown1.Focus();
}
}
private void ra_code_CheckedChanged(object sender, EventArgs e)
{
if (ra_code.Checked)
{
txt_searchname.Enabled = false;
txt_searchname.BackColor = Color.WhiteSmoke;
numericUpDown1.Enabled = true;
numericUpDown1.BackColor = Color.White;
data_search.Enabled = false;
data_search.BackColor = Color.WhiteSmoke;
}
}
private void ra_customer_CheckedChanged(object sender, EventArgs e)
{
if (ra_customer.Checked)
{
txt_searchname.Enabled = true;
txt_searchname.BackColor = Color.White;
txt_searchname.Focus();
numericUpDown1.Enabled = false;
numericUpDown1.BackColor = Color.WhiteSmoke;
data_search.Enabled = false;
data_search.BackColor = Color.WhiteSmoke;
}
}
private void ra_data_CheckedChanged(object sender, EventArgs e)
{
if (ra_data.Checked)
{
txt_searchname.Enabled = false;
txt_searchname.BackColor = Color.WhiteSmoke;
numericUpDown1.Enabled = false;
numericUpDown1.BackColor = Color.WhiteSmoke;
data_search.Enabled = true;
data_search.BackColor = Color.White;
}
}
private void btn_new_Click(object sender, EventArgs e)
{
// enable();
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
}
}
}
در اینجا باید فقط وقتی یک نسخه جدید از فرم ۲ بسازید که وجود نداره.یعنی باید دستور new رو بزارید داخل ifنقل قول:
Form2 customer = new Form2();
if (Application.OpenForms["Form2"] == null)
{
دوست عزیز میشه بگید چگونه این سورس کد را بزارم میشه خودتون سورس اش را بنویسید و چرا این خطاپیش آومده و کجای این کد مشکل داره میشه رفع اش کنید که این خطا پیش نیاد
فقط میتونم دقیقتر راهنماییتون کنم.
در این فایل
https://barnamenevis.org/showthread.p...=1#post1915327
خط ۲۹ رو پاک کنید و محتویاتش رو در خط ۳۲ بنویسید.اگر مشکلتون حل نشد باید پروژتون رو در حالت debug اجرا کنید که VS کدی رو که دچار خطا میشه بهتون نشون بده تا راحتتر بتونید خطاش رو بگیرید.
برای این کار هم فقط کافیه جست و جو کنید.
اگر در هر کدوم از این موارد مشکلی داشتین دوباره توی همین تاپیک بپرسید.
کسی میدونه این ارور برای چیه؟
موقع اجرا ارور نمیده. وقتی فایل exe اجرا میشه، روی باتن که کلیک می کنم این ارور رو میده:
Object reference not set to an instance of an object.
(ارور روی خط رنگی میده) خط4
Pic_Box.Image = img;
Bitmap bmp_img = new Bitmap(Pic_Box.Image);
if (bmp_img == null)
MessageBox.Show("error");
Graphics ghp = Graphics.FromImage(bmp_img);
LinearGradientBrush LineaBrush;
LineaBrush = new LinearGradientBrush(new Rectangle(0, 0, bmp_img.Width, bmp_img.Height), Color.FromArgb(Percent, Layer_color), Color.FromArgb(Percent, Layer_color), LinearGradientMode.BackwardDiagonal);
ghp.FillRectangle(LineaBrush, new Rectangle(0, 0, bmp_img.Width, bmp_img.Height));
return (Image)bmp_img;
گویا شی که به آن اشاره شده است مقدار null دارد...وشی دومی نمیتواند به ان اشاره کند
Object reference not set to an instance of an object
خب به این دلیل در زمان کامپایل خطا نمیگیره که کد از لحاظ Syntax درسته و این نوع خطا در زمان کامپایل قابل تشخیص نیست. مشکل اینجاست که احتمالا زمانی که متد فراخوانی میشود،پارامتر دوم null ارسال میشود،وقتی که در خط 4ام میخواد یه آبجکت از نوع Bitmap بسازه اون null بودنه پارامتر ارسالی باعث این خطا شده است.
سلام دوستان.
من یه برنامه نوشتم که دیتاگریدهای برنامه توسط داده های بانک پر میشن. مشکل اینجاست که وقتی روی هدر دیتاگرید کلیک میکنم برنامه با این خطا متوقف میشه.
An unhandled exception of type 'System.NullReferenceException' occurred in System.Data.dll.
Additional information: Object reference not set to an instance of an object
در چه رویدادهایی از دیتاگرید کدنویسی کرده اید؟
رویداد SelectionChanged. اینم کدش:
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
txtName.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
txtAge.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
cmbTahol.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
txtCodeMelli.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
txtShomarePersoneli.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();
cmbEstekhdam.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString();
txtTel.Text = dataGridView1.CurrentRow.Cells[7].Value.ToString();
txtMobile.Text = dataGridView1.CurrentRow.Cells[8].Value.ToString();
txtAddress.Text = dataGridView1.CurrentRow.Cells[9].Value.ToString();
cmbCarName.Text = dataGridView1.CurrentRow.Cells[10].Value.ToString();
txtCarModel.Text = dataGridView1.CurrentRow.Cells[11].Value.ToString();
cmbKarteSokht.Text = dataGridView1.CurrentRow.Cells[12].Value.ToString();
string carPlak = dataGridView1.CurrentRow.Cells[13].Value.ToString();
string[] strs = carPlak.Split(' ');
if (strs.Count() == 6)
{
txtp1.Text = strs[0];
txtp2.Text = strs[1];
txtp3.Text = strs[2];
txtp4.Text = strs[5];
}
else
{
txtp1.Text = "";
txtp2.Text = "";
txtp3.Text = "";
txtp4.Text = "";
}
}