PDA

View Full Version : سوال: سوال در مورد نحوه ساخت صفحات داینامیک !



mehdifattahi
جمعه 16 تیر 1391, 15:51 عصر
سلام به دوستان گل انجمن
ببخشید یه سوال ابتدائی داشتم !
میخوام مثلا یه فرم طراحی کنم که کاربر تو اون و داخل یه تکست باکس مقداری رو وارد کنه و برنامه نسبت به مقدار وارده تو یه فرم جدید به اون تعدا تکست باکس با عنوان مشخص ایجاد کنه ! مثلا میخوام مسئله کوله پشتی رو به صورت فرم تو سی شارپ بنویسم و کاربر اول تعداد اقلام و گنجایش کلی کیف رو وارد کنه بعد اینا ذخیره بشه بعد برا کاربر تک تک ته یه فرم 3 تا تکست باکس ایجاد بشه که مثلا بگه اسم کالای اول ، وزنش و ارزشش و بعد از وارد کردن بره سراغ بعدی ! چیکار باید بکنم ؟!

ممنون

returnx
جمعه 16 تیر 1391, 17:08 عصر
می تونید از این کد استفاده کنید:


int top=50;


TextBox[] i_textbox=new TextBox[100];


int count = Convert.ToInt32(textBox1.Text);


for (int counter = 0; counter < count; counter++)

{

i_textbox[counter] =
new TextBox();

i_textbox[counter].Top = top;

i_textbox[counter].Show();


this.Controls.Add(i_textbox[counter]);

top = top + 30;

}

mehdifattahi
جمعه 16 تیر 1391, 17:22 عصر
ممنون دوست عزیز. فقط اگر بخوام که این تکست باکسها بیاد روی یه فرم جدید و عملیات دوباره رو فرم جدید تکرار بشه چیکار باید بکنم ؟! باید از تابع فرم استفاده کرد ؟! منظورم اینه بدون اینی که خودم فرم دستی اضافه کنم برنامه خودش فرم بسازه !

returnx
جمعه 16 تیر 1391, 17:25 عصر
من منظورتون رو از قسمت اول سوالتون نگرفتم اما ،

منظورم اینه بدون اینی که خودم فرم دستی اضافه کنم برنامه خودش فرم بسازه !
به این شکل می تونید عمل کنید :


Form i_form = new Form();

i_form.Text =
"New Window";

i_form.Show();

mehdifattahi
جمعه 16 تیر 1391, 17:26 عصر
من برنامه کاملا کارا رو روی کنسول دارم ! میخوام این عملیات رو روی فرم پیاده کنم .

کدی که من دارم بدین صورت هستش :

static void Main(string[] args)
{
// get number of objects
Console.Write("Enter Number Of Object(s): ");
int objNum = Int32.Parse(Console.ReadLine());

// get knapsack weigh
Console.Write("Enter Weight for knapsack: ");
int knapsackWeight = Int32.Parse(Console.ReadLine());

Console.WriteLine();

float[] price = new float[objNum];
float[] weight = new float[objNum];
string[] name = new string[objNum];
float [] x = new float[objNum];

// get object info: name, price, weight
for (int i = 0; i < objNum; i++)
{
Console.Write("Enter Object {0}'s name: ", i + 1);
name[i] = Console.ReadLine();
Console.Write("{0} Price: ", name[i].ToString());
price[i] = float.Parse(Console.ReadLine());
Console.Write("{0} Weight: ",name[i].ToString());
weight[i] = float.Parse(Console.ReadLine());
Console.WriteLine("-------------");
}

// Call Knapsack Method
float totalPrice;
totalPrice = knapsack(price, weight, knapsackWeight, x,name, objNum);

// Print Info
Console.WriteLine("\nKnapsack Info:\n*****");
Console.WriteLine("Total Price: {0}\n", totalPrice);

for (int i = 0; i < objNum; i++)
{
Console.WriteLine("{0}- Quantity of {1} = {2}",i+1 ,name[i], x[i]);
}
Console.ReadLine();
}

/* Knapsack Method
* p[]: Objects Prices
* w[]: Objects Weights
* m : Knapsack Weight
* x[]: Objects Quantity
* n : Nums Of Objects
*/

static float knapsack(float[] p, float[] w,float m,float[] x,string[] names,float n)
{
float rc, pt = 0;
int i = 0;

SortArray(p, w, n,names);

for (i = 0; i < n; i++)
{
x[i] = 0;
}

rc = m;

for (i = 0; i < n; i++)
{
if (w[i] > rc) break;
x[i] = 1;
rc = rc - w[i];
pt = pt + p[i];
}

if (i < n)
{
x[i] = rc / w[i];
pt = pt + (x[i] * p[i]);
}

return pt;
}


// Selection Sort Algorithm
static void SortArray(float[] a,float [] b,float x,string[] name)
{
int i, j;
float min, temp;
string stemp;

for (i = 0; i < x - 1; i++)
{
min = i;

for (j = i + 1; j < x; j++)
{
if (a[j]/b[j] < a[(int)min]/b[(int)min])
{
min = j;
}
}

temp = a[i];
a[i] = a[(int)min];
a[(int)min] = temp;
temp = b[i];
b[i] = b[(int)min];
b[(int)min] = temp;
stemp = name[i];
name[i] = name[(int)min];
name[(int)min] = stemp;
}
}

mehdifattahi
جمعه 16 تیر 1391, 17:29 عصر
به این شکل می تونید عمل کنید :
ممنون از کمکتون . منظورم همین بود ! فقط برا انتقال تکست باکسها روی این فرم جدید چطوری باید عمل کرد ؟!
مشکلی که دارم اینه که مثلا قرار هست کاربر 5 تا داده وارد کنه که هر کدوم اینا 3 تا تکست باکس دارن ! بعد کاربر هر بار که یک آبجکت (3تا تکست باکس) رو پر کرد اوکی کنه و بعدی رو پر کنه تا آخر ! جسارتا اگه برنامه بالا رو اجرا کنید منظورم بهتر میتونم منتقل کنم.
بسیار تشکر