با سلام
من مشكلي در رابطه با گريد ويو داشتم و كد نوشته شده با وي بي هست و اشكال را در اين جا:
https://barnamenevis.org/showth...47#post1044247
بيان كردم. در صورتي كه دوستان نياز داشته باشند كد سي شارپ اون را هم ميگذارم
با سلام
من مشكلي در رابطه با گريد ويو داشتم و كد نوشته شده با وي بي هست و اشكال را در اين جا:
https://barnamenevis.org/showth...47#post1044247
بيان كردم. در صورتي كه دوستان نياز داشته باشند كد سي شارپ اون را هم ميگذارم
اینجا مسائل مربوط به #c مورد برسی قرار می گیره و مطمعن هستم اینجا به جوابی نمی رسی چون کمتر کسی vb کار کرده
کد هم از کد سی شارپ
Private Sub MySub(ByVal DG As DataGridView)
Dim D As New DataGridView
Dim k As Integer = 0
For k = 0 To DG.ColumnCount - 1
Dim col As New DataGridViewColumn
( col = DG.Columns(k
( D.Columns.Add(col
Next
DGVMain = D
End Subاینجا وقتی من گرید اصلی را به تابع میفرستم در خط مشخص شده خطا Null میده.
لازم به ذکر است که گرید دریافتی حاوی اطلاعات و ... است.
ستونی که به یک کنترل گرید تعلق داره رو نمی تونی به گرید دیگری بدی! باید یک ستون جدید ایجاد کنی و مشخصات اون رو پر کنی . مانند کد زیر :
private void MySub(DataGridView DG)
{
DataGridView D = new DataGridView();
int k = 0;
for (k = 0; k <= DG.ColumnCount - 1; k++)
{
DataGridViewColumn col = new DataGridViewColumn();
col.HeaderText = DG.Columns[k].HeaderText;
col.Name = DG.Columns[k].Name;
col.CellTemplate = DG.Columns[k].CellTemplate;
//other properties ...
D.Columns.Add(col);
}
DGVMain = D;
}
من میخواستم این کار را نکنم تا مجبور بشم همه پروپرتی های گرید را کپی بکنم. در حقیقت پروپرتی های زیادی را در گرید اصلی ست کرده ام و حالا چون نمیدونم کدوم پروپرتی های موجود عوض شده حالا باید همه پروپرتی های گرید ویو را نسبت بدم؟
اطلاع دارید که گرید پروپرتی های بسیار زیادی داره.
احتمالا راه حل ساده تری وجود داشته باشد.
کسی کنترل را نمیتونه یک کپی ازش بگیره! و داخل آبجت دیگه ای قرار بده!
اینو ببین کارت راه میندازه؟
private void MySub(DataGridView DG)
{
DataGridView D = new DataGridView();
int k = 0;
for (k = 0; k <= DG.ColumnCount - 1; k++)
{
DataGridViewColumn col = DG.Columns[k].Clone();
D.Columns.Add(col);
}
DGVMain = D;
}