PDA

View Full Version : list box



meysamg_alone
جمعه 25 اردیبهشت 1388, 22:33 عصر
سلام به همه
چه جوری میشه تویه یه لیست باکس نوشته ای رو add کرد و پاک کرد و اون نوشته رو خوند .

Nima_NF
جمعه 25 اردیبهشت 1388, 22:46 عصر
AddString
InsertString
DeleteString
FindString
GetText
و ... از MSDN استفاده کنید.

در کلاسی که listbox هست یک متغیر از نوع CListBox باید بسازید (نوع آن control) و سپس توابع فوق را فراخوانی کنید:




CString str(_T("My string in the listbox"));

myListBox1->AddString( str ); // CListBox* myListBox1

meysamg_alone
جمعه 25 اردیبهشت 1388, 23:52 عصر
اقا نیما ببخشید منظور من win32 بود

Nima_NF
شنبه 26 اردیبهشت 1388, 01:15 صبح
لطفا همیشه در کنار همه سوال هایتان مشخص کنید که منظور win32 هست یا MFC.

ابتدا با استفاده از GetDlgItem در WM_INITDIALOG هندل listbox را دریافت کنید.



hwndList = GetDlgItem(hDlg, ID_MYLISTBOX);


سپس هر جایی که خواستید از ارسال پیام مورد نظر استفاده کنید :



ItemNumber = SendMessage(hwndList, LB_GETCURSEL, 0, 0);

SendMessage(hwndList, LB_DELETESTRING, ItemNumber, 0);


LB_GETCURSEL برای گرفتن ایندکس آیتم کنونی انتخاب شده
LB_ADDSTRING برای اضافه کردن رشته به لیست باکس
LB_FINDSTRING پیدا کردن رشته خاص
LB_GETTEXT دریافت رشته از آیتمی که شما اندکس آن را مشخص می کنید.(0 یعنی اولی)
LB_DELETESTRING حذف آیتم
و ...




TCHAR str[20]= TEXT("hello");
SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM) str);

meysamg_alone
شنبه 26 اردیبهشت 1388, 13:32 عصر
فقط یه چیز دیگه می خواستم بدونم از کد های بالا میشه برایه COMBOBOX هم استفاده کرد یا نه

Nima_NF
شنبه 26 اردیبهشت 1388, 14:15 عصر
هر کنترل برای خودش پیام خاص خود را دارد، باید از MSDN استفاده کنید ولیست پیام ها را ببینید.

لینک کنترل ها در MSDN (http://msdn.microsoft.com/en-us/library/bb773173%28VS.85%29.aspx)

مثلا برای combobox پیام CB_ADDSTRING هست، با همان نام فقط پسوند CB دارد.

Changer
پنج شنبه 16 تیر 1390, 22:20 عصر
اقا اگه میشه توضیحی راجع به این ارور بدهید مربوط به LISTBOX هاست این هم کدش:
public


partial class Form1 : Form

{



string[] array = new string[4];



public Form1()

{

InitializeComponent();

}



private void btnadd_Click(object sender, EventArgs e)

{



string str;



txtname.Focus();

str = txtname.Text;



lstname.Items.Add(str);

txtname.Text =

null;

}



private void btnsort_Click(object sender, EventArgs e)

{



for (int i = 0; i < lstname.Items.Count; i++)

{

array[i] = lstname.Items.ToString();

}



int a = lstname.Items.Count;



Array.Sort(array);

lstname.Items.Clear();



for (int j = 0; j < a; j++)

{

lstname.Items.Add(array[j]);

}

}



}
72082