解决 使用形式's in a class library

lupusrex.

成员
加入
2019年10月30日
消息
16
编程经验
Beginner
你好
我是C#和OOP的新手(虽然我在Autoit编码了十年的话,所以我确实有了对编码的基本了解),但已经读取和观看了TUTS,否则使用谷歌获得答案,但是这个问题我无法找到答案。

我的问题/问题。
我创建了一个简单的表单,有2个文本框和一个按钮。表单位于一个类库中,我想在几个程序中使用它。在同一库中,我有另一个类文件,我想处理对我的lib的所有调用。

我的问题是我不知道如何"pop"表单,以及如何使用按钮从文本框中获取输入数据,然后处理类文件中的该数据。

我想使用库来处理主节目许可证。

我的想法是:

用户启动主程序。
该计划调用我的许可证 - >lib检查程序中是否存在程序的许可证,如果没有"pop"允许用户输入用户名和许可证的表单。
当用户单击表单按钮时,Lib调用许可证服务器检查许可证是否有效,如果LIC有效,则它将其写入数据库,并显示许可证对用户有效消息。
否则如果存在许可证,请继续主程序并删除LIC lib。

我希望它明确了我努力实现的目标,并且有些人可以帮助我朝着正确的方向指导我 :)


干杯
/ lr.
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,898
地点
切萨皮克,va.
编程经验
10+
您只需在程序中添加对该类库的引用。然后在程序中你会打电话给你的"class file". The term is "show" a form, not "pop" a form. To do that you would call ShowDialog on an instance of the form that you want to show.

你是什​​么意思"drop the lic lib"?
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
我的问题是我不知道如何"pop" the form
C#:
            var x = new Form1();
            /** x.ShowDialog(); **/
            x.Show();
X是Form1的新实例。

如果使用showdialog(),请知道这将阻止单击上一个表单。我想这就很好,虽然你可能只是一次只使用一个窗口。

show()不会阻止您单击Windows之间。
如何使用按钮从文本框中获取输入数据
您只需访问您创建的实例并将其应用于要获取/设置值的属性。
C#:
x.textBox1.Text = "Foo";
screenshot_30.jpg.

如果您是初学者,那么我建议获得一些课程,或者在使用表格和形式之间转移数据的主题上研究推荐的书籍。如果您正在与其他库合作,您可能会在串联在表单之间共享价值时成为您的问题。如果你还在学习,我不是什么我建议初学者开始干预。在与您的服务器互动方面,您提出或想到了什么?
 

lupusrex.

成员
加入
2019年10月30日
消息
16
编程经验
Beginner
嗨Skydiver
我在我的测试代码中创建了一个REF到我的DLL文件,我可以显示我的GUI,但我的问题是如何从我的文本框中获取数据,当用户单击“激活”按钮时。

嗨毛皮

我有一个LicenceHandling库,我有表单代码
和licenceHandle.cs类文件

我的表单中有以下代码:
C#:
namespace LRLibary.License
{

    public partial class LicenseGUI : Form
    {

        internal LicenseGUI()
        {
            InitializeComponent();
        }

        private void btnActivate_Click(object sender, EventArgs e)
        {
            string userName = inpUserName.Text;
            string licenseKey = inpLicKey.Text;

            // Handle the inputs
            this.Close();
        }

    }

}

在我的LicenceHandling.cs中

C#:
public class LicenseHandling
    {
        public string UserName { get; set; }
        public string LicenseKey { get; set; }
        private readonly string regKey = @"HKEY_CURRENT_USER\Software\LR\License";

        public LicenseHandling(string progGuid)
        {
            // 1. we need to check if a license exist in the registry.

           bool licenseExists = CheckLicenseExist(progGuid);
            if (!licenseExists)
            {
                // Show the License GUI and get User Name and License Key
                var myForm = new LicenseGUI();
                myForm.ShowDialog();
               
            }
            // The license exists, so now we get the license key
            string licenseFromReg = GetLicenseDataFromRegistry(progGuid);
        }

我尝试了myForm.Inpusername(其中inpusername是用户名文本框),但在我尝试进入它时,inpusername不会出现 :(

是的,我是C#的全新,但我已经阅读并阅读并观看了TUTS。但是,它们确实帮助我使用类别的表格。
获得课程很困难,Corse在我家100公里内没有地方,他们在晚上课程中教导编程,然后回到学校对我来说有点迟到(我40+)

我已经有一个许可证处理工作,用PHP编写,我用它为我的Autoit程序使用它,我试图学习/使用的主要原因C#主要是由于大多数AV供应商Corse的懒惰在过去〜1 -2岁,我的许多自动程序被标记为病毒,尽管它们不是 - 并且它在每次对其中一个更新到一个更新时将它们提交给AVV的痛苦。

我还有一个测试代码,用于在C#中与服务器处理的许可证处理 :)

干杯
/ lr.
 
Last edited:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,898
地点
切萨皮克,va.
编程经验
10+
您与从类库中使用表单无关的问题。如果表格在您的主要计划中,您会有相同的问题。

Anyway, the standard approach from the 90's and early 2000's is to have your LicenseGUI expose two properties: UserName and LicenseKey the same way your LicenseHandling class is exposing those two properties. When the user presses the OK button in the dialog, you fill in the properties.

2010年和向后的现代方法是使用数据传输对象。该数据传输对象将模型 - 视图 - 控制器(MVC),模型 - 视图 - 介绍者(MVP)或模型 - 视图 - 视图模型(MVVM)模式的模型。

这是一个我常常的另一个网站的教程:
从Form1到Form2获取值的正确方法
 
Last edited:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,898
地点
切萨皮克,va.
编程经验
10+
回到学校对我来说有点迟到(我40岁以上)
永远不会太迟。我的妻子和我在40年代末期。她两年前开始了硕士学位,并在几个月前完成了它。这是一个全职工作,两个幼儿,一个小学的孩子,以及一个疯狂的工作时间的丈夫。我为她感到骄傲!
 

lupusrex.

成员
加入
2019年10月30日
消息
16
编程经验
Beginner
您与从类库中使用表单无关的问题。如果表格在您的主要计划中,您会有相同的问题。

Anyway, the standard approach from the 90's and early 2000's is to have your LicenseGUI expose two properties: UserName and LicenseKey the same way your LicenseHandling class is exposing those two properties. When the user presses the OK button in the dialog, you fill in the properties.

2010年和向后的现代方法是使用数据传输对象。该数据传输对象将模型 - 视图 - 控制器(MVC),模型 - 视图 - 介绍者(MVP)或模型 - 视图 - 视图模型(MVVM)模式的模型。

这是一个我常常的另一个网站的教程:
从Form1到Form2获取值的正确方法
嗨Skydiver
这个Tut精确了我需要什么<3

永远不会太迟。我的妻子和我在40年代末期。她两年前开始了硕士学位,并在几个月前完成了它。这是一个全职工作,两个幼儿,一个小学的孩子,以及一个疯狂的工作时间的丈夫。我为她感到骄傲!

对我来说,这是迟到的,如果我回到学校,我的收入将下降到6-7K Pr月,但我的费用是〜11k Pr月。
只有我才能赚取和支付,如果我有一个妻子或者我和一个也加入费用的女朋友,那就不是一个问题,但作为一个问题,它只是不可能的 :(

Gratz对你妻子的硕士学位 (y)

干杯
/ rex.

编辑:如何改变问题来解决问题?找不到任何帮助 :(
/ R.
 
Last edited:

lupusrex.

成员
加入
2019年10月30日
消息
16
编程经验
Beginner
嗨毛皮
我无法编辑我的第一篇文章,是我尝试的第一件事。

可能是我对论坛上的新手来做这种编辑。

/ lr.
 
最佳 底部