PDA

View Full Version : دریافت اطلاعات فایل متنی و قرار دادن آن در ComboBox



mjzaret
شنبه 21 شهریور 1394, 09:26 صبح
می‌خوام اطلاعاتی رو از یه فایل متنی دریافت کنم و با داشتن شرطی خاص در کمبو باکس لیست شود.
من کد نویسی رو به صورت ذیل انجام دادم:

cmbList.Items.Clear();
string[] LineOfContent = File.ReadAllLines("TextFile.text");
foreach (var line in LineOfContent)
{
string[] tokens = line.Split('|');
if (tokens.Contains("Javad"))
{

cmbServer.Items.Add(tokens[1]);
}
}


این کد در دات نت 4 به خوبی کار می‌کنه.

مشکلم اینه که برای دات نت 2 چطوری پیاده سازی کنم.

فایل متنی من هم ساختاری اینچنین داره:


Javad|16
Javad|20
Javad|19
Hamid|14
Hamid|13
Mehdi|15
Reza|13

شاد باشید :لبخندساده:

محمد رضا فاتحی
شنبه 21 شهریور 1394, 10:03 صبح
سلام اگه ساختار فایلتون همیشه همینه می تونید بجای

if (tokens.Contains("Javad"))


از این دستور استفاده کنید

if (tokens[0].ToLower()=="javad")

mjzaret
شنبه 21 شهریور 1394, 11:19 صبح
مرسی بابت راهنماییتون

کارم رو با ToString() راه انداختم.

همین راهنمایی شما خیلی مفید بود.

حال سوال دیگری دارم.

اگر من در همون فایل تکستی که دارم به صورت زیر باشد:


Javad|Javadi|15
Javad|Razavi|20
Javad|Mohamadi|19
Hamid|Hamidi|14
Hamid|Kord|13
Mehdi|Lotfi|15
Reza|Vakili|13

حال اگر بخواهم در صورت انتخاب یک رادیو باتن متناظر با خط اول قسمت دوم در کمبو باکس نمایش داده شود

اما مقدا متناظر برای کمبوباکس عددهای مورد نظرشون باشه.

مثال بزنم:

من چند رادیو باتن دارم:

رادیو باتن Javad

رادیو باتن Hamid

زمانی که رادیو باتن Javad رو انتخاب کردم مقادیر دوم که Javadi و Razavi و Mohamadi در کمبو باکسم لیست شود.

تا اینجا هیچ مشکلی ندارم.

حال من می‌خوام اطلاعات درون کمبو باکس رو در فرایند دیگری به کار ببرم اما مقدار سوم هر خط که عدد است رو می‌خوام استفاده کنم.

کل مطلب اینه که من در نمایش کمبو باکس میخوام قسمت دوم باشه ولی در موقع استفاده از کمبو باکس مقدار سوم لحاظ بشه.

شاد باشید :لبخندساده:

محمد رضا فاتحی
شنبه 21 شهریور 1394, 11:48 صبح
یه موردی هست به نام valuemember از اون می تونی استفاده کنی ولی چطور دستی ست می کنن رو من بلد نیستم... من اغلب موارد از دیتابیس واکشی می کنم و همونجا بصورت کد value member رو ست می کنم
ولی فکر کنم این لینک کارت رو راه بندازه
http://stackoverflow.com/questions/3063320/combobox-adding-text-and-value-to-an-item-no-binding-source

mjzaret
سه شنبه 07 مهر 1394, 18:05 عصر
کلی سرچ کردم و نتونستم به جوابم برسم.

کسی از دوستان در این زمینه نمی‌تونه راهنماییم کنه؟

شاد باشید :لبخندساده:

Hybrid
چهارشنبه 08 مهر 1394, 09:48 صبح
سلام ، یک کلاس شخصی به عنوان مثال با نام ComboboxItem تعریف کنید به شکل زیر :

public class ComboBoxItem
{
public int Id { get; set; }
public string Value { get; set; }

public ComboBoxItem(int id, string value)
{
this.Id = id;
this.Value = value;
}

public override string ToString()
{
return this.Value;
}
}
واسه اضافه کردن آیتم به Combobox از کدی به شکل زیر استفاده کنید :

this.comboBox1.Items.Add(new ComboBoxItem(1, "siavash"));
this.comboBox1.Items.Add(new ComboBoxItem(2, "amin"));
this.comboBox1.Items.Add(new ComboBoxItem(3, "ahmad"));
واسه بدست آوردن Id متناظر با هر آیتم هم از کدی به شکل زیر می تونید استفاده کنید :

ComboBoxItem currentItem = (ComboBoxItem)comboBox1.SelectedItem;
this.label1.Text = currentItem.Id.ToString();

shadi khanum
چهارشنبه 08 مهر 1394, 11:26 صبح
میتونید بر اساس مقادیرتون یه دیتاتیبل تشکیل بدید با دو ستون name وid مثلا، و اون رو به کمبوباکستون بدید و ویژگی های displayMember و ValueMember رو هم برای کمبو بر اساس ستونهای دیتاتیبل مقداردهی کنید. اینجوری در نمایش اون فامیل افراد رو نشون نمیده و در value ، اون آیدی ها که میخواهید رو.

mjzaret
چهارشنبه 08 مهر 1394, 13:10 عصر
سلام ، یک کلاس شخصی به عنوان مثال با نام ComboboxItem تعریف کنید به شکل زیر :

public class ComboBoxItem
{
public int Id { get; set; }
public string Value { get; set; }

public ComboBoxItem(int id, string value)
{
this.Id = id;
this.Value = value;
}

public override string ToString()
{
return this.Value;
}
}
واسه اضافه کردن آیتم به Combobox از کدی به شکل زیر استفاده کنید :

this.comboBox1.Items.Add(new ComboBoxItem(1, "siavash"));
this.comboBox1.Items.Add(new ComboBoxItem(2, "amin"));
this.comboBox1.Items.Add(new ComboBoxItem(3, "ahmad"));
واسه بدست آوردن Id متناظر با هر آیتم هم از کدی به شکل زیر می تونید استفاده کنید :

ComboBoxItem currentItem = (ComboBoxItem)comboBox1.SelectedItem;
this.label1.Text = currentItem.Id.ToString();

بابت راهنمایی‌تون تشکر می‌کنم.

خودم هم با تلاشهای زیاد تونستم به جوابی که شما به من دادید برسم و مشکلم به راحتی حل شد.

با این حال از شما تشکر می‌کنم.

شاد باشید :لبخندساده: