PDA

View Full Version : سوال: چطوری سلولهای دیتاگرید بصورت کمبوباکس نشون داده بشن؟البته به تعداد مشخص



دلتنگ اسمان
یک شنبه 10 آذر 1392, 14:34 عصر
سلام.
از همه مهندسین تشکر میکنم که خیلی از مشکلات بنده از طریق همین سایت حل شده.
میخوام وقتی دیتاگرید نشون داده میشه (ستون اول نام افراد می باشد که از سطر سوم شروع میشن) به تعداد همین افراد و از ستون دوم و سطر سوم تا ستون 32ام همه سلولها بصورت کمبوباکس نشون داده بشه. ( داخل همه کمبوباکسها یه نوع داده هستش). ممنون

دلتنگ اسمان
یک شنبه 10 آذر 1392, 16:32 عصر
دوستان من این کد رو نوشتم. ولی درست کار نمیکنه. یعنی کمبوباکسی اضافه نمیشه.


Form1 fForm1 = new Form1();
string[] n = { "M", "E", "N", "O", "MN" };

for (int t = 0; t < 32; t++)
{
DataGridViewComboBoxColumn col1 = new DataGridViewComboBoxColumn();
DataGridViewComboBoxCell col2 = new DataGridViewComboBoxCell();
col1.DataSource = n;
fForm1.dataGridView1.Columns.Add("t", t.ToString());
fForm1.dataGridView1.Rows.Add();
fForm1.dataGridView1.Rows.Insert(t, col1);
}

113389

forodo
یک شنبه 10 آذر 1392, 17:32 عصر
سلام
من درست متوجه نشدم.
اگر می خواید ستونهای خاصی از دیتاگریدتون به صورت کمبوباکس باشه دستی ( ویزاردی نه به صورت کد ) ستون add کنید و اونارو به صورت کمبوباکس قرار دهید.
بعد اطلاعاتتون رو داخل اونا بریزید.

fmehrvarzi
یک شنبه 10 آذر 1392, 18:20 عصر
فقط کافیه یک فرم جدید با یک دیتا گریدویو بسازی
این هم کدهای داخل فرم

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 ComboBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private DataGridViewTextBoxColumn Column1;
private DataGridViewComboBoxColumn Column2;
string[] n = { "M", "E", "N", "O", "MN" };
private void Form1_Load(object sender, EventArgs e)
{
Column1 = new DataGridViewTextBoxColumn();
Column1.HeaderText = "Column1";
Column1.Name = "Column1";

DataGridViewColumn[] dgvc = new DataGridViewColumn[32];
dataGridView1.Columns.Add(Column1);
for (int i = 0; i < 32; i++)
{
Column2 = new DataGridViewComboBoxColumn();
this.Column2.HeaderText = i.ToString();
this.Column2.Name = i.ToString();
dataGridView1.Columns.Add(Column2);
}

foreach (string str in n)
{
DataGridViewRow newRow = (DataGridViewRow)dataGridView1.Rows[0].Clone();
newRow.Cells[0].Value = str;
dataGridView1.Rows.Add(newRow);
}


}
}
}


سوال دیگه ای؟

دلتنگ اسمان
دوشنبه 11 آذر 1392, 09:41 صبح
فقط کافیه یک فرم جدید با یک دیتا گریدویو بسازی
این هم کدهای داخل فرم

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 ComboBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private DataGridViewTextBoxColumn Column1;
private DataGridViewComboBoxColumn Column2;
string[] n = { "M", "E", "N", "O", "MN" };
private void Form1_Load(object sender, EventArgs e)
{
Column1 = new DataGridViewTextBoxColumn();
Column1.HeaderText = "Column1";
Column1.Name = "Column1";

DataGridViewColumn[] dgvc = new DataGridViewColumn[32];
dataGridView1.Columns.Add(Column1);
for (int i = 0; i < 32; i++)
{
Column2 = new DataGridViewComboBoxColumn();
this.Column2.HeaderText = i.ToString();
this.Column2.Name = i.ToString();
dataGridView1.Columns.Add(Column2);
}

foreach (string str in n)
{
DataGridViewRow newRow = (DataGridViewRow)dataGridView1.Rows[0].Clone();
newRow.Cells[0].Value = str;
dataGridView1.Rows.Add(newRow);
}


}
}
}


سوال دیگه ای؟

ممنون. فقط یه مشکل داره. اونم وقتی روی کمبوباکسها کلیک میکنی خطا میده. و در کلیک دوم لیست کمبو باز میشه .
کد شما رو به اینصورت تغییر دادم:میخوام هر کمبو ارایه رو نشنون بده.

for (int i = 0; i < 32; i++)
{
Column2 = new DataGridViewComboBoxColumn();
this.Column2.HeaderText = i.ToString();
this.Column2.Name = i.ToString();
Column2.DataSource= n;
dataGridView1.Columns.Add(Column2);
}

for (int i = 0; i < 20; i++)
{
DataGridViewRow newRow2 = (DataGridViewRow)dataGridView1.Rows[0].Clone();
dataGridView1.Rows.Add(newRow2);
}
تصویر خطا:113410

دلتنگ اسمان
دوشنبه 11 آذر 1392, 13:53 عصر
لطفا یکی جواب بده. هر کاری میکنم نمیتونم درستش کنم.

Boy_nn
دوشنبه 11 آذر 1392, 15:03 عصر
برو سراغ wpf تو گریدش یوزر کنترلم می تونی ادد کنی کمبو باکس که هیچ
winApp تقریبا" آخرای خط هست خیلی بهش گیر ندید

دلتنگ اسمان
دوشنبه 11 آذر 1392, 15:34 عصر
برو سراغ wpf تو گریدش یوزر کنترلم می تونی ادد کنی کمبو باکس که هیچ
winApp تقریبا" آخرای خط هست خیلی بهش گیر ندید
الان فرصت اموزش wpf رو ندارم. چون این برنامه رو تا چند روز دیگه باید اماده کنم. لطفا کمکم کنید. ممنون

fmehrvarzi
دوشنبه 11 آذر 1392, 19:16 عصر
چه آرایه ای رو نشون بده؟ همون اسمها رو میفرمائید، اگر اونهاست تأیید کنید که کدها را اصلاح کنم.
با تشکر