PDA

View Full Version : حرفه ای: ایجاد intelisens برای ریچ تکست باکس



voice.of.silence
دوشنبه 10 دی 1397, 19:47 عصر
سلام دوستان.
من می خوام که برای ریچ تکستباکس یک intelisens بنویسم اما نمی دونم که چرا کار نمی کنه.
قرار که لغات از پایگاه داده load بشه و در یک listbox به صورت intelisens نمایش بده.
خوشحال می شم اگه منو در این مورد راهنمایی کنید.
با سپاس فراوان.

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


namespace Persian_Vocabularies
{
public partial class frm_intelisens : Form
{
public frm_intelisens()
{
InitializeComponent();
}


SqlCommand cmd = new SqlCommand();
ListBox lst = new ListBox();
Point referencePoint;
private void frm_intelisens_Load(object sender, EventArgs e)
{


}




private void rtxtarea_KeyPress(object sender, KeyPressEventArgs e)
{
string str = "";
if (e.KeyChar != Convert.ToChar(Keys.Back))
{
str = rtxtarea.Text + e.KeyChar.ToString();
//if you press backspace we need to remove the ascii code from the str
}
else
{
if (rtxtarea.Text.Length > 0)
{
str = rtxtarea.Text.Remove(rtxtarea.Text.Length - 1, 1);
}
}
if (str.Trim() != "")
{
System.Data.SqlClient.SqlDataReader rdr;
try
{
cmd.Connection = con_to_sql;
cmd.CommandText = "select vocabulary from tbl_words where vocabulary like '"+str+"%'";
con_to_sql.Open();
rdr = cmd.ExecuteReader();
lst.Items.Clear();
while (rdr.Read())
lst.Items.Add(rdr.GetSqlString(0).ToString().Trim( ));
if (lst.Items.Count > 0)
{
lst.Visible = true;
lst.Location = referencePoint;
lst.Size = new Size(200, 200);
}
else
{
lst.Visible = false;
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con_to_sql.Close();
}
}


}


private void rtxtarea_TextChanged(object sender, EventArgs e)
{
Point referencePoint = rtxtarea.Cursor.HotSpot;


}
}
}

NasimBamdad
سه شنبه 11 دی 1397, 13:16 عصر
میشه از کامبو باکس هم استفاده کرد ،