none
關於 AutoCompleteSource 列舉型別 RRS feed

  • 問題

  •   成員名稱 說明

    AllSystemSources 指定 FileSystem 和 AllUrl 的對等項當做來源。當 AutoCompleteMode 設為非預設值時,這是預設值。 

    AllUrl 指定 HistoryList 和 RecentlyUsedList 的對等項當做來源。 

    CustomSource 指定自訂 AutoCompleteStringCollection 的字串當做來源。 

    因為目前想要弄自動完成的功能,可是關於Source這個地方我不懂。

    我目前是用 CustomSource 的來源,
    因為我有在 AutoCompleteCustomSource 這個集合內輸入資料,
    所以有資料來源可以實行"自動完成" 。

    因為目前的資料來源我在系統有預設,
    但是我要怎麼去紀錄使用者有輸入過的內容?


    2008年10月15日 下午 01:41

解答

  • 可以使用 User Settings 來當作儲存,以下用 Settings 的 UserInput 字串來儲存。
    將可能的字串集合以 , 符號作為分隔,例如: 111,123,145,222,234,33 。
    當使用者按下 button 將確認輸出的字串儲存至 Settings 中,並更新 AutoCompleteCustomSource

    Code Snippet



    using System;

    using System.Collections.Generic;

    using System.Windows.Forms;

    using WindowsFormsApplication1.Properties;

     

    namespace WindowsFormsApplication1

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

     

            private readonly AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();

     

            private void Form1_Load(object sender, EventArgs e)

            {

                acsc.AddRange(Settings.Default.UserInput.Split(",".ToCharArray()));

     

                textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;

                textBox1.AutoCompleteCustomSource = acsc;

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

                var userInputList = new List<string>();

                userInputList.AddRange(Settings.Default.UserInput.Split(",".ToCharArray()));

     

                if (!userInputList.Contains(textBox1.Text))

                {

                    userInputList.Add(textBox1.Text);

                    Settings.Default.UserInput = string.Join(",", userInputList.ToArray());

                    Settings.Default.Save();

                    acsc.Clear();

                    acsc.AddRange(userInputList.ToArray());

                }

            }

        }

    }

     

     

    2008年10月15日 下午 04:13

所有回覆

  • 可以使用 User Settings 來當作儲存,以下用 Settings 的 UserInput 字串來儲存。
    將可能的字串集合以 , 符號作為分隔,例如: 111,123,145,222,234,33 。
    當使用者按下 button 將確認輸出的字串儲存至 Settings 中,並更新 AutoCompleteCustomSource

    Code Snippet



    using System;

    using System.Collections.Generic;

    using System.Windows.Forms;

    using WindowsFormsApplication1.Properties;

     

    namespace WindowsFormsApplication1

    {

        public partial class Form1 : Form

        {

            public Form1()

            {

                InitializeComponent();

            }

     

            private readonly AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();

     

            private void Form1_Load(object sender, EventArgs e)

            {

                acsc.AddRange(Settings.Default.UserInput.Split(",".ToCharArray()));

     

                textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;

                textBox1.AutoCompleteCustomSource = acsc;

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

                var userInputList = new List<string>();

                userInputList.AddRange(Settings.Default.UserInput.Split(",".ToCharArray()));

     

                if (!userInputList.Contains(textBox1.Text))

                {

                    userInputList.Add(textBox1.Text);

                    Settings.Default.UserInput = string.Join(",", userInputList.ToArray());

                    Settings.Default.Save();

                    acsc.Clear();

                    acsc.AddRange(userInputList.ToArray());

                }

            }

        }

    }

     

     

    2008年10月15日 下午 04:13
  • 了解了,謝謝。

    另外請教一下,那關於密碼的部份。

    是靠 txtID_TextChanged 的事件來進行比對完成嗎?

    所以說...一樣使用上面記錄的方法,這樣密碼部份就要另外加密了?
    2008年10月19日 上午 10:23