如何编写代码,使一点按钮,在windows窗口中的文本枢中出现三个或四个中文文字,可选择三个或四个,默认为三个。并且保在一个记事本中

解决方案 »

  1.   


        private object[] CreateString(int strlength)
        {
            //定义一个数组存储汉字编码的组成元素
            string[] str = new string[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };        Random ran = new Random();  //定义一个随机数对象
            object[] bytes = new object[strlength];
            for (int i = 0; i < strlength; i++)
            {
                //获取区位码第一位
                int ran1 = ran.Next(11, 14);
                string str1 = str[ran1].Trim();            //获取区位码第二位并防止数据重复
                ran = new Random(ran1 * unchecked((int)DateTime.Now.Ticks) + i);
                int ran2;
                if (ran1 == 13)
                {
                    ran2 = ran.Next(0, 7);
                }
                else
                {
                    ran2 = ran.Next(0, 16);
                }
                string str2 = str[ran2].Trim();            //获取区位码第三位
                ran = new Random(ran2 * unchecked((int)DateTime.Now.Ticks) + i);
                int ran3 = ran.Next(10, 16);
                string str3 = str[ran3].Trim();            //获取区位码第四位
                ran = new Random(ran3 * unchecked((int)DateTime.Now.Ticks) + i);
                int ran4;
                if (ran3 == 10)
                {
                    ran4 = ran.Next(1, 16);
                }
                else if (ran3 == 15)
                {
                    ran4 = ran.Next(0, 15);
                }
                else
                {
                    ran4 = ran.Next(0, 16);
                }
                string str4 = str[ran4].Trim();            //定义字节变量存储产生的随机汉字区位码
                byte byte1 = Convert.ToByte(str1 + str2, 16);
                byte byte2 = Convert.ToByte(str3 + str4, 16);            byte[] stradd = new byte[] { byte1, byte2 };
                //将产生的汉字字节放入数组
                bytes.SetValue(stradd, i);
            }
            return bytes;
        }    private string GetString(int length)
        {
            Encoding gb = Encoding.GetEncoding("gb2312");
            object[] bytes = CreateString(length);        //根据汉字字节解码出中文汉字
            string str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[])));
            string str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[])));
            string str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[])));
            string str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[])));        string str = str1 + str2 + str3 + str4;
            return str;
        }
      

  2.   

    随机生成一个2字节的整数,然后强制转换为char,再连接成串        static void Main(string[] args)
            {
                char c = (char)0x4FFF;
                Console.WriteLine(GetRandomString(3));
                Console.WriteLine(GetRandomString(4));
                Console.WriteLine(GetRandomString(5));
            }        static Random _random = new Random(DateTime.Now.Millisecond);
            static string GetRandomString(int length)
            {
                string ret = string.Empty;
                for (int i = 0; i < length; i++)
                {
                    ret += (char)_random.Next(0x4e00, 0x9521);  // 可以在此指定生成汉字所处的范围
                }
                return ret;
            }