PDA

View Full Version : دادن همزمان مقدار و متن به یک checkedListBox



hosha92
چهارشنبه 04 دی 1392, 21:03 عصر
سلام دوستان
من میخوام یه سری اطلاعات رو داخل یک checkedListBox بریزم ، به این صورت که مثلا اسامی افراد وارد بشه و در کنار اون ، به هر اسم ، یک مقدار هم داده بشه،به گونه ای که بعدا بتونم با دابل کلیک روی هر اسم ، مقدار اون رو در مسیج باکس نمایش بدم
دقت کنید که من نمیخوام از دیتا بیس بخونم اطلاعات رو ، یعنی ممکنه اطلاعات رو از هرطریقی دریافت کنم و به checkedListBox بدم!
به عبارتی مشکل من الان اینه که چطوری به طور همزمان هم متن بدم به checkedListBox و هم مقدار بددم به اون متن!!
ممنونم

maythamahmadi
چهارشنبه 04 دی 1392, 21:08 عصر
اون مقدار که قرار به هر اسم داده بشه باید داخل چک باکس نمایش داده بشه یا که نه می خوای داخل مثلا یک متغیر یا آرایه ذخیره بشه؟؟

sagggad
چهارشنبه 04 دی 1392, 21:13 عصر
مقدار از نوع Boolean هست؟؟

hosha92
چهارشنبه 04 دی 1392, 21:16 عصر
اون مقدار که قرار به هر اسم داده بشه باید داخل چک باکس نمایش داده بشه یا که نه می خوای داخل مثلا یک متغیر یا آرایه ذخیره بشه؟؟

نه نمیخوام نمایش داده بشه
نه میخوام داخل چک باکس فقط متنی که تعیین کردم نمایش داده بشه و مقدار نمایش داده نشه و فقط بعد بتونم با دابل کلیک روی هر متن ، مقدارشو به صورت استرینگ دریافت کنم

hosha92
چهارشنبه 04 دی 1392, 21:17 عصر
مقدار از نوع Boolean هست؟؟

از نوع string

hosha92
پنج شنبه 05 دی 1392, 15:51 عصر
یعنی کسی پاسخ این سوال را بلد نیست؟!؟!؟

khokhan
پنج شنبه 05 دی 1392, 16:21 عصر
سلام دوستان
من میخوام یه سری اطلاعات رو داخل یک checkedListBox بریزم ، به این صورت که مثلا اسامی افراد وارد بشه و در کنار اون ، به هر اسم ، یک مقدار هم داده بشه،به گونه ای که بعدا بتونم با دابل کلیک روی هر اسم ، مقدار اون رو در مسیج باکس نمایش بدم
دقت کنید که من نمیخوام از دیتا بیس بخونم اطلاعات رو ، یعنی ممکنه اطلاعات رو از هرطریقی دریافت کنم و به checkedListBox بدم!
به عبارتی مشکل من الان اینه که چطوری به طور همزمان هم متن بدم به checkedListBox و هم مقدار بددم به اون متن!!
ممنونم
لازم نیست هم اسامی و هم عدد رو به هر آیتم اختصاص بدین
وقتی اسامی توی چک لیست نمایش داده بشه هنگام دابل کلیک روی هر آیتم به جای مقدار اندیسش رو دریافت کنین

hosha92
پنج شنبه 05 دی 1392, 16:52 عصر
لازم نیست هم اسامی و هم عدد رو به هر آیتم اختصاص بدین
وقتی اسامی توی چک لیست نمایش داده بشه هنگام دابل کلیک روی هر آیتم به جای مقدار اندیسش رو دریافت کنین

ممنون اما لازم هست که این کار را بکنم!یعنی باید در کنار نام هر فرد ، یه کد خاص فرد هم در آیتم باشه!اونم به طور پنهان

khokhan
پنج شنبه 05 دی 1392, 16:57 عصر
یعنی کسی پاسخ این سوال را بلد نیست؟!؟!؟
البته یه جور دیگه هم می شه
اگه چک لیست باکس رو به بانک متصل کرده باشین می تونین اسامی رو از یه فیل بخونین و به عنوان DisplayMember چک لیست معرفی کنین و فیلد id رو به عنوان ValueMember چک لیست قرار بدین بعد در هر رویدادی که خواسته باشین می تونین یا مقدار اسامی و یا مقدار id رو و یا هردو رو با هم دریافت کنین :

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

namespace checklistbox
{

public partial class Form1 : Form
{
ceckstiEntities db = new ceckstiEntities();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
var GenreList = from c in db.zirna orderby c.lname select c;
cbGenreList.DataSource = GenreList.ToArray();
cbGenreList.DisplayMember = "lname";
cbGenreList.ValueMember = "id";
}

private void cbGenreList_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
foreach (var item in cbGenreList.CheckedItems.OfType<zirna>())
{
MessageBox.Show(item.id + ": " + item.lname);
}
}
}
}

114444

hosha92
پنج شنبه 05 دی 1392, 17:09 عصر
البته یه جور دیگه هم می شه
اگه چک لیست باکس رو به بانک متصل کرده باشین می تونین اسامی رو از یه فیل بخونین و به عنوان DisplayMember چک لیست معرفی کنین و فیلد id رو به عنوان ValueMember چک لیست قرار بدین بعد در هر رویدادی که خواسته باشین می تونین یا مقدار اسامی و یا مقدار id رو و یا هردو رو با هم دریافت کنین :

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

namespace checklistbox
{

public partial class Form1 : Form
{
ceckstiEntities db = new ceckstiEntities();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
var GenreList = from c in db.zirna orderby c.lname select c;
cbGenreList.DataSource = GenreList.ToArray();
cbGenreList.DisplayMember = "lname";
cbGenreList.ValueMember = "id";
}

private void cbGenreList_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
foreach (var item in cbGenreList.CheckedItems.OfType<zirna>())
{
MessageBox.Show(item.id + ": " + item.lname);
}
}
}
}

114444
ممنونم از اینکه کمک می کنید ، اما من اصلا با بانک کاری ندارم و فقط میخوام اطلاعات رو مثلا از بیرون به برنامه بدم و اون به ازای هر دو مقداری که دریافت می کنه ، اولی رو به عنوان متن به چک باکس اضافه کنه و دومی رو به عنوان مقدار اون متن!!

khokhan
پنج شنبه 05 دی 1392, 17:21 عصر
ممنونم از اینکه کمک می کنید ، اما من اصلا با بانک کاری ندارم و فقط میخوام اطلاعات رو مثلا از بیرون به برنامه بدم و اون به ازای هر دو مقداری که دریافت می کنه ، اولی رو به عنوان متن به چک باکس اضافه کنه و دومی رو به عنوان مقدار اون متن!!
پس حداقل بایستی بگین چطوری می خواین چیزی رو که مد نظرتون هست به چک لیست اختصاص بدین
همینطوری که نمی شه :لبخند:

hosha92
پنج شنبه 05 دی 1392, 17:38 عصر
پس حداقل بایستی بگین چطوری می خواین چیزی رو که مد نظرتون هست به چک لیست اختصاص بدین
همینطوری که نمی شه :لبخند:


یعنی چجوری توضیح بدم؟؟من اطلاعات رو به صورت آرایه از php به #C میدم و بعد سی شارپ باید این اطلاعات رو به صورت جفت جفت بگیره (تا اینجاش حله) ، اما بعد میخوام بخش اول (از هرجفت) رو به عنوان متن عادی اضافه کنه و بخش دوم از هرجفت رو به عنوان مقدار همون متن اضافه کنه...
کدی که تا اینجا نوشتم :

private void inbox_pm_Load(object sender, EventArgs e)
{
//listBox1.Items.Clear();
WebClient m = new WebClient();
m.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string address = CL.HOST + "pms/inbox/index.php";
string ans = m.UploadString(address, "usr=" + CL.USERNAME);
byte[] ans2 = Convert.FromBase64String(ans);
ans = Encoding.UTF8.GetString(ans2);
string[] split1 = ans.Split(new Char[] { '#' });
int f = split1.Count();

for (int i = 0; i < f; i++)
{
string[] split2 = split1[i].Split(new Char[] { '^' });
//listBox1.SelectedIndex = System.Convert.ToInt32(split2[1]);
string datasasa = split2[0].ToString() + split2[1].ToString();
//this.CheckedListBox1.Items.Add(datasasa);
//this.CheckedListBox1.ValueMember = split2[0];
}

}


کد پی اچ پی ورودی هم اینه که شامل دو جفت اطلاعاته :

'2'.'^'.'amin'.'#'.'45'.'^'.'ali'

hosha92
پنج شنبه 05 دی 1392, 18:27 عصر
دوستان کسی نبود به من کمک کنه؟!؟

hosha92
پنج شنبه 05 دی 1392, 22:07 عصر
کسی نیست یه جواب بده به من؟؟آیا این سوال تا این حد سخته؟؟

meysamsh91
پنج شنبه 05 دی 1392, 22:07 عصر
سلام
اگر درست متوجه شده باشم با فرض وجود دو تکست باکس و یک چک لیست باکس و یک باتن به شکل زیر عمل کنید.
وظیفه دکمه باتن : درج محتویات تکست باکس اول برای آیتم های چک لیست باکس و درج محتویات تکست باکس دوم برای پیغام مربوطه
با استفاده از SortedList محتویات تکست باکس اول که قراره آیتم چک لیست باشه رو بعنوان Key و محتویات تکست باکس دوم که پیغام مربوطه هست برای Value در نظر بگیرید.
گام اول : اضافه کردن NameSpace مروبط به SortedList

using System.Collections;

گام دوم :
ساخت یک شی از نوع SortedList در محیط کلاس

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SortedList sl = new SortedList();

گام سوم :
در رویداد کلیک دکمه مورد نظر کد زیر را درج کنید

checkedListBox1.Items.Add(textBox1.Text);
sl.Add(textBox1.Text,textBox2.Text);

گام چهارم:
کد مربوط به رویداد کلیک چک لیست باکس

MessageBox.Show(sl[checkedListBox1.SelectedItem].ToString());



موفق و پیروز باشید.

hosha92
پنج شنبه 05 دی 1392, 22:56 عصر
سلام
اگر درست متوجه شده باشم با فرض وجود دو تکست باکس و یک چک لیست باکس و یک باتن به شکل زیر عمل کنید.
وظیفه دکمه باتن : درج محتویات تکست باکس اول برای آیتم های چک لیست باکس و درج محتویات تکست باکس دوم برای پیغام مربوطه
با استفاده از SortedList محتویات تکست باکس اول که قراره آیتم چک لیست باشه رو بعنوان Key و محتویات تکست باکس دوم که پیغام مربوطه هست برای Value در نظر بگیرید.
گام اول : اضافه کردن NameSpace مروبط به SortedList

using System.Collections;

گام دوم :
ساخت یک شی از نوع SortedList در محیط کلاس

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SortedList sl = new SortedList();

گام سوم :
در رویداد کلیک دکمه مورد نظر کد زیر را درج کنید

checkedListBox1.Items.Add(textBox1.Text);
sl.Add(textBox1.Text,textBox2.Text);

گام چهارم:
کد مربوط به رویداد کلیک چک لیست باکس

MessageBox.Show(sl[checkedListBox1.SelectedItem].ToString());



موفق و پیروز باشید.

آقا دمت گرم
دقیقا همونی بود که میخواستم
خدا خیرت بده...
بی نهایت ممنونم
مشکلمو حل کردید