2009-03-13 2 views
5

Я ищу элемент управления (или предложения по созданию моего собственного) для приложения .NET 2.0 (Windows), которое работает как адресное поле в почтовом окне Outlook (пчела ниже)Управление .NET, как адрес электронной почты Outlook Адрес текстового управления

Outlook Address Control http://content.screencast.com/users/Ryan_Farley/folders/Jing/media/a511142b-dd04-4885-ad1e-f2582c201723/2009-03-12_2116.png

управления в основном работает, где каждый адрес электронной почты, как элемент в текстовой области. Мне все равно, что позволить пользователю также вводить в эту область, как вы можете в Outlook. Я просто хочу иметь возможность добавлять эти полные строки (адреса электронной почты) в текстовую область или список, и пользователь может их выбирать (но не редактировать) и может удалять или переходить через список, чтобы удалить целые элементы (e -mail).

Кто-нибудь знает о контроле, который делает это? Любые предложения по созданию собственного? (или кто-нибудь знает, что вы даже называете этим контролем, поэтому я знаю, что делать в Google?)

+0

+1 Мне нужно сделать что-то подобное (но не адреса электронной почты), вы получили какую-то радость от этого? –

ответ

1

Вот код, чтобы вы начали.

using System.Text; 
using System.Windows.Forms; 
using System; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      textBox1.Text = "[email protected]; [email protected]; [email protected]"; 
     } 

     private void textBox1_Click(object sender, EventArgs e) 
     { 
      int nextSpaceIndex = textBox1.Text.Substring(textBox1.SelectionStart).IndexOf(' '); 
      int firstSpaceIndex = textBox1.Text.Substring(0, textBox1.SelectionStart).LastIndexOf(' '); 
      nextSpaceIndex = nextSpaceIndex == -1 ? textBox1.Text.Length : nextSpaceIndex + textBox1.SelectionStart; 
      firstSpaceIndex = firstSpaceIndex == -1 ? 0 : firstSpaceIndex; 
      textBox1.SelectionStart = firstSpaceIndex; 
      textBox1.SelectionLength = nextSpaceIndex - firstSpaceIndex; 
     } 
    } 
} 

Это будет, когда вы нажмете на адрес электронной почты, выберите весь адрес электронной почты. Я не уверен, что это функциональность, в которой вы собираетесь (хотя это звучит так, но), но это поможет вам начать. Если вы хотите выполнять другие функции, помимо функциональности щелчка, подключайтесь к другим событиям, предлагаемым TextBox.

+0

Я закончил тем же маршрутом. Спасибо за комментарий. –

-2

.NET 2.0 У Windows Forms уже есть это, и это просто MaskedTextBox.

Но для обеспечения максимальной допустимости ввода, такой как адрес электронной почты, вы можете добавить проверку регулярного выражения (Regex), когда текст в MaskedTextBox будет изменен.

Update: Для обеспечения более настройки, такие как множественный адрес электронной почты, вы можете также использовать MaskedTextBox в сочетании с RichTextBox, так как есть не реализация точной функциональности Outlook, контроль ввода адреса электронной почты не родная Windows Forms.

Я также сделал это, захватив текущий курсор пользователя, когда элемент управления RichTextBox получил фокус, а затем непосредственно маскирует вход, используя дополнительный MaskedTextBox, сгенерированный «на лету» во время выполнения, отображаемый поверх RichTextBox. Поэтому при вводе адресов электронной почты в нескольких случаях может быть несколько MaskedTextBox.

Я не говорю, что это непростая задача, но это выполнимо.

Смотреть это:

MSDN documentation on MaskedTextBox

+1

Это совершенно не то же самое. Я не вижу, как вы будете использовать MaskedTextBox, чтобы обеспечить такую ​​функциональность. Это должно быть что-то вроде созданного владельцем ListView. –

+0

Вы сказали в своем вопросе, что хотите эту функциональность в текстовом поле ИЛИ в списке. MaskedTextBox также является текстовым полем. –

+0

Я использовал слова «текстовая область», чтобы описать, что этот элемент управления находится в Outlook. На скриншоте показан список адресов, и вопрос описывает список адресов электронной почты, каждый из которых является полным «элементом» сортировки в этом списке адресов, который в Outlook является текстовой областью, пользователь также может ввести там –

Смежные вопросы