PDA

View Full Version : بدست آوردن آیتم انتخاب شده در datagridviewcomboboxcell



mahmata
پنج شنبه 16 مرداد 1393, 20:58 عصر
سلام
توی دیتاگرید ویو چند تا کامبوباکس دارم که مقدار انتخاب شده ی کامبوباکس رو با کد زیر نشون نمیده. اما برای cellهای عادی گریدویو جواب میده . کدهای مختلفم امتحان کردن ولی خطای System.NullReferenceException: Object reference not set to an instance of an object. رو میده
اینم کدم:

private void button1_Click(object sender, EventArgs e)
{
double a = 0;
double b = 0;
double c = 0;
double d = 0;
double Sigma_z = 0;//meter
double Sigma_y = 0;//meter
string StabilityCat = "";
double WindSpeed = 0 ;//Convert.ToDouble(dataGridView1.Rows[0].Cells[1].Value);
double h_stack = 0;
double gas_Exit_Velocity = 0;
double stack_tempreture = 0;
double air_tempreture = 0;
double Q = 0;
double Stack_Diameter = 0;
double pressure = 0;
string observation_time = "";


for (int i = 0; i < dataGridView1.Rows.Count-1 ; i++)
{

WindSpeed = Convert.ToDouble(dataGridView1.Rows[i].Cells[0].Value);
h_stack = Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value);
gas_Exit_Velocity = Convert.ToDouble(dataGridView1.Rows[i].Cells[2].Value);
stack_tempreture = Convert.ToDouble(dataGridView1.Rows[i].Cells[3].Value);
air_tempreture = Convert.ToDouble(dataGridView1.Rows[i].Cells[4].Value);
Q = Convert.ToDouble(dataGridView1.Rows[i].Cells[5].Value);
Stack_Diameter = Convert.ToDouble(dataGridView1.Rows[i].Cells[6].Value);
pressure = Convert.ToDouble(dataGridView1.Rows[i].Cells[7].Value);
observation_time = Convert.ToString(dataGridView1.Rows[i].Cells[8].Value);
//DataGridViewComboBoxCell comboCell = (DataGridViewComboBoxCell)dgv.Rows[i].Cells[8];


//MessageBox.Show("" + comboCell.Items.IndexOf(comboCell.Value));
//DataGridViewComboBoxCell dgvcmbcell = dataGridView1[8, i] as DataGridViewComboBoxCell;
//observation_time = dgvcmbcell.EditedFormattedValue.ToString();


//string SelectedText = Convert.ToString((DataGridView1.Rows[0].Cells["dgcombocell"] as DataGridViewComboBoxCell).FormattedValue.ToString( ));
//DataGridViewComboBoxCell dgvcmbcell = dataGridView1[1, 0] as DataGridViewComboBoxCell;
//String text = dgvcmbcell.EditedFormattedValue.ToString();
}


////test*****
MessageBox.Show( observation_time);
//dataGridView1.Rows[0].Cells[0].Value = WindSpeed.ToString();
//*****

}
اینم عکس:
http://www.axgig.com/images/53487012568310535913.png (http://www.axgig.com/)

mahmata
پنج شنبه 16 مرداد 1393, 23:19 عصر
کسی نیست منو راهنمایی کنه!؟:ناراحت:

Amiri.projects
پنج شنبه 16 مرداد 1393, 23:30 عصر
اگر DataSource , DisplayMember , ValueMember مربوط به هر کمبوباکس رو درست پر و انتخاب کنید مشکلی پیش نمیاد. کد شما رو هم تست گرفتم. موفق باشید.

mahmata
پنج شنبه 16 مرداد 1393, 23:38 عصر
میشه در مورد valuemember و displaymember توضیح بدید؟

Amiri.projects
جمعه 17 مرداد 1393, 00:13 صبح
displaymember : اعضای کمبو باکس که به کاربر نشان داده می شوند

valuemember : اعضای پنهان کمبوباکس که نظیر به نظیر با اعضای displaymember وجود دارند ولی می توانند مقدار متفاوت با عضو متناظر خود در displaymember داشته باشند.

شما هم میتونید از مقادیر موجود در valuemember استفاده کنید

موفق باشید.

mahmata
جمعه 17 مرداد 1393, 09:47 صبح
ببینید من کامبو باکس ها رو با کد زیر به دیتاگریدویو اضافه کردم
DataGridViewComboBoxColumn newColumn = new DataGridViewComboBoxColumn(); newColumn.Name = "Time of obsevation";
newColumn.DataSource = new string[] { "Day", "Night" };
dataGridView1.Columns.Add(newColumn);


foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)(row.Cells["Time of obsevation"]);
cell.DataSource = new string[] { "Day", "Night" };
}

الان من متوجه نمیشم Displaymember و Valuemember رو چه جوری بنویسم؟

mahmata
جمعه 17 مرداد 1393, 14:33 عصر
میشه یکی توضیح بده من چطور برای کد بالا displaymember و valuemember اضافه کنم؟

mahmata
جمعه 17 مرداد 1393, 21:43 عصر
بالاخره مشکلم با کمک یه انجمن خارجکی حل شد!!!!
بازم به اونا که حداقل درست و حسابی جواب آدمو میدن و واقعا کمک میکنن!!!
در ضمن نه به displaymember احتیاج داشتم نه به valuemember!!!!!

http://www.axgig.com/images/03240071087448190236.png (http://www.axgig.com/)