小编Exi*_*nea的帖子

如何从另一种形式调用函数

在我的项目中,我有一个设置表单和一个主表单.我试图从设置表单中调用Main表单的MasterReset函数,但没有任何反应.
Master form的Masterreset功能如下所示.

public void MasterReset()
    {
        DialogResult dialogResult = MessageBox.Show("Are you sure you want to perform master reset? All settings will be set to default.", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
        if (dialogResult == DialogResult.Yes)
        {
            string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            string phonebook_path = path + "\\Phonebook\\Contacts.xml";
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(phonebook_path);
            XmlNode xNode = xDoc.SelectSingleNode("People");
            xNode.InnerXml = "";
            xDoc.Save(phonebook_path);
            listView1.Clear();
            people.Clear();
        }
        else if (dialogResult == DialogResult.No)
        {
            return;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在从"设置"表单中访问它

private void btn_MasterReset_Click(object sender, EventArgs e)
{
    Main f1 …
Run Code Online (Sandbox Code Playgroud)

c# void

4
推荐指数
3
解决办法
6万
查看次数

c# - 登录表单不会关闭

我正在开发一个供个人使用的项目(简单的电话簿).

基本上,我有三种形式:Main(主要),Settings(用于配置设置的)和Login(登录表单,只有在用户选中启动时要求输入密码的选项时才会启动) .只是为了使事情清楚:当.EXE文件启动时,它应该加载Main表单,除非选中要求传递的选项(Properties.Settings.Default.AskForPass == true) - 当它应该运行Login表单时第一.

以下是登录表单的外观:

登录

我不知道如何让事情以正确的方式运作.

我试图将Program.cs中的行从Main更改为Login:

namespace Phonebook
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Login());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,如果用户输入正确的用户名和密码,然后单击确定按钮:

private void button1_Click(object sender, EventArgs e)
    {
        if (txtUsername.Text == Properties.Settings.Default.MyUsername && txtPassword.Text == Properties.Settings.Default.MyPassword)
        {
            Main f1 = new …
Run Code Online (Sandbox Code Playgroud)

c# login

3
推荐指数
1
解决办法
254
查看次数

使用文本框搜索listview项目

我正在使用C#中的一个简单应用程序(电话簿),在我的项目中,我有一个填充了联系人的列表视图.我一直在努力实现使用文本框自动(即时)搜索列表视图的可能性.我已经设法使它工作,但不是以理想的方式.如果我给你举个例子,你会意识到实际的问题.假设我有一个名为Bill Gates的联系人,当我尝试搜索它时 - 它被找到了,那部分就可以了.但是,问题是当我尝试搜索另一个联系人时.在这种情况下,我必须在键入其他名称之前清除文本框,但是可以只删除字母.当我开始删除整个名字时,在删除第一个字母后,它就像我刚刚输入的名字一样 - 它选择了项目(并且也集中了) - 实际上没有时间在它再次找到联系人之前删除整个名称.我必须删除第一个字母,然后切换回文本框,删除另一个字母等.是否有任何搜索自动解决方案 - 现在,但另一方面删除(清除文本框)而不选择联系人是可能的.

看看代码:

private void txt_Search_TextChanged(object sender, System.EventArgs e)
    {
        if (txt_Search.Text != "")
        {
            foreach (ListViewItem item in listView1.Items)
            {
                if (item.Text.ToLower().Contains(txt_Search.Text.ToLower()))
                {
                    item.Selected = true;
                }
                else
                {
                    listView1.Items.Remove(item);
                }

            }
            if (listView1.SelectedItems.Count == 1)
            {
                listView1.Focus();
            }
        }
        else 
        { 
            LoadContacts();
            RefreshAll();
        }
    } 
Run Code Online (Sandbox Code Playgroud)

c# search listview

2
推荐指数
1
解决办法
2万
查看次数

c# - 从文本框计算十进制数

我在计算两个十进制数时遇到问题.

基本上,我正在尝试使用克多次盎司.我有两个文本框,第一个应该包含盎司(例如3,5),而第二个应该显示相同的值但以克为单位.因此,盎司应乘以31.1034768,结果应显示在第二个文本框中.

我一直试图用许多不同的方式来计算这两个,但它们都没有真正起作用.这是我最后一次失败的尝试:

private void btn_Calculate_Click(object sender, EventArgs e)
    {
        decimal oz = Convert.ToDecimal(txt_WeightOz.Text);
        decimal ozingrams = 31.1034768M;
        decimal result = Decimal.Multiply(oz, ozingrams);
        txt_WeightGrams.Text = Convert.ToDecimal(result);
    }
Run Code Online (Sandbox Code Playgroud)

它说我不能隐式地将类型'decimal'转换为'string'.

我该如何处理这个问题?

c# decimal multiplying

1
推荐指数
1
解决办法
1495
查看次数

标签 统计

c# ×4

decimal ×1

listview ×1

login ×1

multiplying ×1

search ×1

void ×1