PDA

View Full Version : ایجاد datagrid دینامیک در یک tab page دینامیک



iman-63
چهارشنبه 28 مرداد 1394, 20:57 عصر
باسلام.
یک tab page به صورت دینامیک ایجاد کردم که می خوام یه دیتا گرید که اونم از نوع دینامیکه رو درون اون تب نمایش بدم.
از کد زیر هم استفاده کردم اما موفق نشدم.
لطفا یه نگاهی بندازین.
با تشکر



TabPage myTabPage = new TabPage(title);
DataGridView dataGridView = new DataGridView();
.
.
.

tabControl.TabPages.Add(myTabPage);
myTabPage.Controls.Add(dataGridView);

khokhan
چهارشنبه 28 مرداد 1394, 21:45 عصر
باسلام.
یک tab page به صورت دینامیک ایجاد کردم که می خوام یه دیتا گرید که اونم از نوع دینامیکه رو درون اون تب نمایش بدم.
از کد زیر هم استفاده کردم اما موفق نشدم.
لطفا یه نگاهی بندازین.
با تشکر



TabPage myTabPage = new TabPage(title);
DataGridView dataGridView = new DataGridView();
.
.
.

tabControl.TabPages.Add(myTabPage);
myTabPage.Controls.Add(dataGridView);




.................................................. ............................................!!!


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public DataGridView createDGV(string dgvName)
{
DataGridView dgvEmpty = new DataGridView();

DataGridViewTextBoxColumn qtyColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn unitColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn partNumberColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn descriptionColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn dateColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn Qty = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn Unit = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn PartNumber = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn Description = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn Date = new System.Windows.Forms.DataGridViewTextBoxColumn();

qtyColumn.HeaderText = "Qty";
qtyColumn.Name = "Quantity";
unitColumn.HeaderText = "Unit";
unitColumn.Name = "Unit";
partNumberColumn.HeaderText = "Part Number";
descriptionColumn.HeaderText = "Description";
descriptionColumn.Name = "Description";
dateColumn.HeaderText = "Date Requested";
dateColumn.Name = "Date_Req";

dgvEmpty.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Win dows.Forms.AnchorStyles.Top
| System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
dgvEmpty.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeig htSizeMode.AutoSize;
dgvEmpty.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
qtyColumn,
unitColumn,
partNumberColumn,
descriptionColumn,
dateColumn});

dgvEmpty.Location = new System.Drawing.Point(3, 4);
dgvEmpty.Name = dgvName + "DataGridView";
dgvEmpty.Size = new System.Drawing.Size(752, 389);
dgvEmpty.TabIndex = 4;

return dgvEmpty;
}
private void Form1_Load(object sender, EventArgs e)
{
string title = "Round " ;
TabPage myTabPage = new TabPage(title);
myTabPage.SuspendLayout();
tabControl1.TabPages.Clear();
tabControl1.TabPages.Add(myTabPage);
DataGridView grid =createDGV("Matan");

myTabPage.Controls.Add(grid);
myTabPage.ResumeLayout();
myTabPage.Refresh();
}
}

ژیار رحیمی
چهارشنبه 28 مرداد 1394, 21:57 عصر
دوست گرامی کد که گذاشتی مشکلی نداره من کدهارو تست کردم هم تب جدید و هم درون آن دیتاگریدو قرارمیده

iman-63
چهارشنبه 28 مرداد 1394, 22:23 عصر
سلام.
ممنون از پاسخ سریع تون.
ظاهراً اشکال توی ایجاد tab page بود. location درست تعریف نشده بود.
یه سوال دیگه هم داشتم.
اگه بخوام با این تابع چند تا tab page بسازم که توی هر کدومش یه data grid باشه و بعد بخوام به عناصر دیتا گرید ها توی tab page ها دسترسی داشته باشم باید چیکار کنم؟
فرضا 10 تا tab page بصورت دینامیک ساختم و توی هر کدوم یه دیتا گرید قرداد دادم(اینم به صورت دینامیک). حالا میخوام به دیتا گرید واقع در tab page دهم دسترسی و مقادیر سلول ها رو بخونم.
بسیار ممنون.