2013-04-30 13 views
6
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 abc 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
    EmoticonRender ab = new EmoticonRender(); 
    private void button1_Click(object sender, EventArgs e) 
    { 
     string textie = ab.Parse(textBox1.Text); 
     richTextBox1.Text += textie+"\n"; 
    } 
} 
public class EmoticonRender 
{ 

    private List<KeyValuePair<string, string>> _dictionary = new List<KeyValuePair<string, string>>() 
    { 
    new KeyValuePair<string, string>(":-)", "a.png"), 
    new KeyValuePair<string, string>(";-(", "a.png"), 
    }; 

    public string Parse(string text) 
    { 
    foreach(KeyValuePair<string, string> kvp in _dictionary) 
    { 
    text = text.Replace(kvp.Key, @"C:\Users\Buddiez\Documents\Visual Studio 2010\Projects\abc\abc\a.png"); 
    } 
    return text; 
    } 

} 

}come aggiungere emoticon per RichTextbox

im utilizzando questi codici di linea per inserire smilyes in RichTextBox ma invece di mostrare smileye esso mostra il percorso del png imgae es. C: \ Users \ Buddiez \ Documents \ Visual Studio 2010 \ Projects \ abc \ abc \ a.png

+0

possibile duplicato di [Come posso inserire un'immagine in un RichTextBox?] (Http://stackoverflow.com/questions/542850/how-can-i-insert-an-image-into-a-richtextbox) –

+0

Mi piace quella chiave :) – nawfal

+0

un fratello qualunque fortuna? – zzlalani

risposta

1

Copia tutte le immagini che hai e vai a >> studio visivo seleziona Progetto >> Proprietà. Seleziona Risorse e incollare tutte le immagini copiate nel riquadro di destra.

Hashtable emotions; 
    void CreateEmotions() 
    { 
     emotions= new Hashtable(6); 
     emotions.Add(":-)", Project.Properties.Resources.regular_smile); 
     emotions.Add(":)", Project.Properties.Resources.regular_smile); 

    } 

    void AddEmotions() 
    { 
     foreach (string emote in emotions.Keys) 
     { 
      while(richTextBox1.Text.Contains(emote)) 
      { 
       int ind = richTextBox1.Text.IndexOf(emote); 
       richTextBox1.Select(ind, emote.Length); 
       Clipboard.SetImage((Image)emotions[emote]); 
       richTextBox1.Paste(); 
      } 
     } 
    } 
+0

dopo aver cercato su stack overflow e altri siti web questa è la soluzione migliore. funziona alla grande. Grazie. – jonathana

1

Una buona (e relativamente nuovo) soluzione potrebbe essere usare la open-source EmojiBox progetto.

Non c'è molto codice c'è quindi è abbastanza facile da seguire, basta notare che, al fine di inserire un emoji nella RichTextBox abitudine là, il testo digitato deve seguire il modello di : emoji_name:

Ovviamente, se non si desidera utilizzare l'intero elenco di emoji unicode, è possibile anche sostituire i file di immagine oi relativi nomi/descrizioni all'interno del file json.