搜索结果

×

搜索结果将在这里显示。

✨ VS分辨率设置

一、新建窗体 Form2

解决方案右键 → 添加 → Windows 窗体,命名 Form2

在 Form2 拖入对应控件,对应关系不变:

控件名称控件类型显示文字
radioRes1RadioButton800×600
radioRes2RadioButton1024×768
radioRes3RadioButton1280×1024
chkWindowCheckBox窗口化运行
chkSoundCheckBox游戏音乐
chkMusicCheckBox背景音乐
txtAccountTextBox(空白,上方 Label 写:默认账号)
btnSaveButton保存设置
btnCloseButton关闭

2、替换完整 Form2.cs 代码

using System;
using Microsoft.Win32;
using System.Windows.Forms;

namespace 替换成你自己项目的命名空间
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            LoadAllSetting(); // 打开窗体自动读取注册表配置
        }

        #region 读取注册表所有配置
        private void LoadAllSetting()
        {
            RegistryKey reg = Registry.CurrentUser.OpenSubKey(@"Software\Webzen\MU\Config", false);
            if (reg == null)
            {
                // 注册表无配置,初始化默认值
                radioRes1.Checked = true;
                chkSound.Checked = true;
                chkMusic.Checked = true;
                chkWindow.Checked = false;
                txtAccount.Text = "";
                return;
            }

            // 读取分辨率
            int res = Convert.ToInt32(reg.GetValue("Resolution", 1));
            switch (res)
            {
                case 1: radioRes1.Checked = true; break;
                case 2: radioRes2.Checked = true; break;
                case 3: radioRes3.Checked = true; break;
                default: radioRes1.Checked = true; break;
            }

            // 音效、音乐、窗口模式
            chkSound.Checked = Convert.ToInt32(reg.GetValue("SoundOnOff", 1)) == 1;
            chkMusic.Checked = Convert.ToInt32(reg.GetValue("MusicOnOFF", 1)) == 1;
            chkWindow.Checked = Convert.ToInt32(reg.GetValue("WindowMode", 0)) == 1;

            // 账号
            txtAccount.Text = reg.GetValue("ID", "").ToString();

            reg.Close();
        }
        #endregion

        #region 写入注册表通用方法
        private void SaveReg(string keyName, object value)
        {
            try
            {
                RegistryKey reg = Registry.CurrentUser.CreateSubKey(@"Software\Webzen\MU\Config");
                reg.SetValue(keyName, value);
                reg.Close();
            }
            catch
            {

            }
        }
        #endregion

        #region 分辨率单选事件(互斥)
        private void radioRes1_CheckedChanged(object sender, EventArgs e)
        {
            if (radioRes1.Checked)
            {
                SaveReg("Resolution", 1);
                radioRes2.Checked = false;
                radioRes3.Checked = false;
            }
        }

        private void radioRes2_CheckedChanged(object sender, EventArgs e)
        {
            if (radioRes2.Checked)
            {
                SaveReg("Resolution", 2);
                radioRes1.Checked = false;
                radioRes3.Checked = false;
            }
        }

        private void radioRes3_CheckedChanged(object sender, EventArgs e)
        {
            if (radioRes3.Checked)
            {
                SaveReg("Resolution", 3);
                radioRes1.Checked = false;
                radioRes2.Checked = false;
            }
        }
        #endregion

        #region 勾选框事件
        private void chkWindow_CheckedChanged(object sender, EventArgs e)
        {
            SaveReg("WindowMode", chkWindow.Checked ? 1 : 0);
        }

        private void chkSound_CheckedChanged(object sender, EventArgs e)
        {
            SaveReg("SoundOnOff", chkSound.Checked ? 1 : 0);
        }

        private void chkMusic_CheckedChanged(object sender, EventArgs e)
        {
            SaveReg("MusicOnOFF", chkMusic.Checked ? 1 : 0);
        }
        #endregion

        // 保存按钮
        private void btnSave_Click(object sender, EventArgs e)
        {
            SaveReg("ID", txtAccount.Text.Trim());
            MessageBox.Show("配置保存成功");
            this.Close();
        }

        // 关闭按钮
        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

三、绑定各个控件事件(必须绑定否则无效果)

打开 Form2 设计页面,选中控件,在闪电事件面板绑定:

radioRes1 → CheckedChanged → radioRes1_CheckedChanged

radioRes2 → CheckedChanged → radioRes2_CheckedChanged

radioRes3 → CheckedChanged → radioRes3_CheckedChanged

chkWindow → CheckedChanged → chkWindow_CheckedChanged

chkSound → CheckedChanged → chkSound_CheckedChanged

chkMusic → CheckedChanged → chkMusic_CheckedChanged

btnSave → Click → btnSave_Click

btnClose → Click → btnClose_Click


四、在主窗口 Form1 打开设置窗口 Form2

在主界面的「设置按钮」点击事件里写:

private void btnSetting_Click(object sender, EventArgs e)
{
    Form2 frmSet = new Form2();
    frmSet.StartPosition = FormStartPosition.CenterParent; //弹窗居中在主窗口
    frmSet.ShowDialog(); //模态弹窗,必须关掉设置才能操作主界面
}




发布时间: