الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اظهار عنصر في الكومبو!؟

بدأه الطائر التركي في 22 أغسطس 2008 · 12 رد · 1,267 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي comboBox تحوي مجموعة من Objects كل Object يحوي two data member واحد اسمه value والاخر اسمه view

السؤال

ازاي اظهار الـview لـvalue معينه؟

مثال

الـcomboBox تحوي الاتي

value --> 5 view --> AA

value --> 7 view --> DF

value --> 4 view --> RT

value --> 1 view --> KJ

انا هحصل بطريقتاً ما علي مثلا 4 ازاي اظهر في الـcomboBox الـview المناظر اللي هو RT ؟

اتمني اكون قدرة اوضح المطلوب :wacko: واتمني ايضا اجد من يساعد :(

شكرا

#2

هذا مثال بسيط أرجو أن يكون واضحا

using System;

public class MyObject
{
	public string View;
	public int Value;

	//this is your solution
	public override string ToString()
	{
		return this.View;
	}
}


public class program
{
	public static void Main()
	{
		//Create one object
		MyObject obj = new MyObject();
		obj.View = "RT";
		obj.Value = 4;

		Console.WriteLine (obj.ToString());
	}
}
#3

للأسف مش واضح

فين العلاقة اللي تربط الـValue بي الـView !؟

بطبيعة الحال السطر الاخيرة هيطبع RT حتي بدون هذا السطر obj.Value = 4

المشكلة انا لا اعرف الـView المناظرة للـValue ولا كنت اعرفها اذن اين المشكلة!؟

شكرا علي المساعد وكنت اريد توضيح اكثر

شكرا

#4
 

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
	class Combo
	{

		private string name;

		public string Name
		{
			get { return name; }
			set 
			{				
				name = value; 
			}
		}

		private string id;

		public string ID
		{
			get { return id; }
			set { id = value; }
		}


		public override string ToString()
		{
			return name;

		}
		public Combo(string Name, string Value)
		{
			name = Name;
			id = Value;
		}
	}
}


ده الكلاس اللى انا عملته علشان كنت عايز اعمل نفس اللى انت بتقول عليه

WindowsApplication1.rar

#5

وده نفس الكلاس اللى الاخ كريم اداك المثال بتاعه بس معلش سبقنى وحطلك الكلاس

وده تطبيق عليه

صحيح فى المثال انا حاطط الكلاس Reference

For_Group.rar

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#6

متشكر جدا بس كما واضح من السؤال ان مرحلة ملء الـكومبو انتهيت وايضا مفيش مشكلة اني احصل علي الـVALUE عن اختر المستخدم عنصر ما ، كل هذه النقط تم مناقشتها قبل ذلك

انا سؤالي اني عاوز احصل علي الـVIEW المناظر لي VALUE معينه وفقط

اشكر كل الاخوة علي المساعدة ويارب اكون عرفت اوضح السؤال

شكرا

#7

جرب هذا المثال المرفق

WindowsApplication1.rar

#8

هل جربت ArrayList <>

فهي تأخذ قيمة ومفتاح ويمكن ان تضع المفتاح والقيمة بالنوع الذي تريده

فمثلا

using System.Collection.Generic;

arraylist < int, string > obj = new arraylist <int, string>; // the int can be you value and string can be your view

#9

متشكر اخي choclatboy فعلا هو حل بس تخيل لو عندي 10000 عنصر وهي قابلة للزيادة

كنت اتمني الوصول للـVIEW بشكل مباشر من الـVALUE بدون البحث

اخي Prof.Mendl بصرحة معرفتش انفذ اللي حضرتك قلت عليه ممكن لو مثال مجرب يكون احسن

شكرا

#10

المشكلة ان ال value ليست unique فصعب وجود دالة مثل FindByValue بشكل افتراضي

و لكن ممكن تعمل foreach loop او انك تستخدم ال datasource نفسه و افضل لو يكون key/value pairs - dictionary

#11

مش عارف قصدك حضرتك في ان يكون الـvalue تكون unique ، فهل من الممكن جعل متغير unique !؟، اما لو حضرتك تقصد ان تكون القيم اللي تمثلها unique فهي فعلا كده اصلها بتأخذه من حقل PK في جدول ما

علي العموم جت فكرة في دمغي وجربتها ونفعت والحمد لله وهي كالاتي

			listBox1.SelectedValue = (4).ToString();
			listBox1.Text = listBox1.SelectedItem.ToString();

السطر الاول هضع القيمة مثلا 4 للخاصية SelectedValue علي اعتبار ان ده هي القيمة التي تم اختيارها

السطر التاني قلتله هات العنصر الذي تم اختياره وحطه في الخاصية Text اللي وظيقتها اظهار النص المراد

اتمني لو في اي ملاحظات علي هذا الكلام تعرفوني

متشكر جدا لك اللي سعدوني واللي كانه عوزين يسعدوني :)

شكرا

#12
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
Namespace WindowsApplication1
{
	class Combo
	{

		private string name;

		public string Name
		{
			get { return name; }
			set 
			{				
				name = value; 
			}
		}

		private int id;

		public int ID
		{
			get { return id; }
			set { id = value; }
		}


		public override string ToString()
		{
			return name;

		}
		public Combo(string Name, int Value)
		{
			name = Name;
			id = Value;
		}
	}
}

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication2
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{
			combo myCombo1 = new combo(1,"AA");
			combo myCombo2 = new combo(2, "BB");
			combo myCombo3 = new combo(3, "CC");
			combo myCombo4 = new combo(4, "DD");

			SortedList<int, string> comboList = new SortedList<int, string>();
			comboList.Add(myCombo1.ID, myCombo1.Name);
			comboList.Add(myCombo2.ID, myCombo2.Name);
			comboList.Add(myCombo3.ID, myCombo3.Name);
			comboList.Add(myCombo4.ID, myCombo4.Name);

			int k=Convert.ToInt16( comboBox1.SelectedItem.ToString());
			button1.Text = comboList[k];

		}
	}
}
#13

مع العلم انك وضعت comboBox على الفورم وقد تم ملئ هذه الكنترول بالارقام 1 2 3 4 اي بنفس قيم id or value للكائنات ويمكن التعامل مع هذه النقطة بأكثر من طريقة اتركها لك

لكن المهم انك عند اختيار رقم منهم من الكمبو بوكس والضغط على الزرار سيتم اليا وضع قيمة Name or View على الزرار

جربها وان احتاجت مساعدة بلغني وانا في الخدمة

WindowsApplication2.rar

مواضيع مشابهة