这个是我的登录窗口。
我现在准备了一个TXT文件,里面的账号密码如下:
Ianto cO$$e2
Jack h@rKn2$$
Toshiko m@1NfrAm2
River $wEe71e
Donna D0c%0r 
然后我遇上的问题是,在玩家于textbox中输入字符后,我想让其输入的账号与密码在按下登录button后与以上的信息匹配,这样才能完成登录跳到第二个form,但是我不知道该怎么在login按钮中调用函数?还是说我要先将上面的字符转化成二进制后与玩家输入的字符进行匹配呢?
以下是我的代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace Login
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }        private void TextBox_Usersname(object sender, TextChangedEventArgs e)
        {
            string str1 = Console.ReadLine();
        }        private void TextBox_Password(object sender, TextChangedEventArgs e)
        {
            string str2 = Console.ReadLine();
        }        public         private void Login_btn(object sender, RoutedEventArgs e)
        {
            string filePath = "C:\\MMORPG_DB\\highly_secure_user_file.txt";
            StreamReader sr = new StreamReader(filePath, Encoding.Default);
            while (sr.ReadLine() != null)
                
            if ()
            {
                ServerState form2 = new ServerState();
                form2.Show();
                //this.DialogResult = Convert.ToBoolean(1);
                this.Close();
                break;
            }
            else
            {
                MessageBox.Show("Uersname or Passowrd is error!");
            }
        }        private void Quit_btn(object sender, RoutedEventArgs e)
        {
            App.Current.Shutdown();
        }
    }
}
总共就四个按钮,两个textbox分别对应username和password,剩下两个是login按钮和quit按钮。
我不知道该在if的判断条件中写什么……因为尝试着直接写str1和str2后却发现这两个函数无法被识别。
本人初学者,没想到碰上的第一个练习就被卡住了,查了很多资料还是没懂怎么做,所以只能在这里麻烦诸位了。

解决方案 »

  1.   

    另外中间有个public是因为我最开始想的时候,是想把username和password中的str1和str2都整合到一个函数中,然后在if语句中判断(函数 == txt文件)的。
    但是后来转念一想,这样似乎还是不对,于是就放弃了。
      

  2.   

    对了,我是用WPF来做的。
      

  3.   

    一般来说,用户需要个唯一标识,比如给用户分配个int类型的ID
    将多个用户信息保存到字典或者动态数组中去,将ID作为查询的Key
    密码检验不麻烦,就是字符串类型的比较
      

  4.   

    public void TextBox_Usersname(object sender, TextChangedEventArgs e)
            {
                string str1 = Console.ReadLine();
            }        public void TextBox_Password(object sender, TextChangedEventArgs e)
            {
                string str2 = Console.ReadLine();
            }        //public static void CompareTXT()
            //{
            //    TextBox_Username str1 = new TextBox.str1();        //}        private void Login_btn(object sender, RoutedEventArgs e)
            {
                if (TextBox_Usersname.Text == "" || TextBox_Password.Text == "") {
                    MessageBox.Show("Can't be empty!");
                    return;
                }这个是我改的新的代码,但是它老是提示我
    错误 “MainWindow.TextBox_Usersname(object, TextChangedEventArgs)”是一个 方法,这在给定的上下文中无效。
    这怎么搞啊。。
    我的TXT文件中只有两串数字,一串是账户名,一串是密码。如果我要给每一个用户加上一个ID,这意味着我应该直接修改TXT文件的内容吗?如果要在代码中将两串英文和数字赋值给ID,又怎么让计算机识别哪一串是账户,哪一串是密码呢?