问题 从链接的模块访问设置和资源

马坎德里亚科

新成员
已加入
2019年9月17日
留言内容
3
编程经验
10+
在VB.Net中,我有一个用于所有项目的模块。我只是将其添加为项目链接,然后在使用它的任何项目中编译所有更改。
在该模块中,有一个子程序将图标分配给表单,并作为参数传递。

VB.NET:
Public Sub CommonProcedures(ByRef frmSender As Form)
    frmSender.Icon = My.Resources.FormIcon
End Sub
它将使用My.Resources取决于我们正在使用的项目。

如何在C#中做同样的事情?

当我使用

C#:
public static void CommonProcedures(Form frmSender)
{
    frmSender.Icon = Properties.Resources.FormIcon;
}
它要求专门包括资源的名称空间。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,527
地点
弗吉尼亚州切萨皮克
编程经验
10+
您必须获取包含表单的程序集,然后搜索其资源以获取"FormIcon".
 

马坎德里亚科

新成员
已加入
2019年9月17日
留言内容
3
编程经验
10+
谢谢,但我认为您没有明白这一点。该代码所在的类在许多不同的项目中使用,每个项目都有不同的程序集。而且我想找出一种在C#中执行此操作的方法,因为VB可以完美地工作。当然,这只是一个非常简单的方法,但是该模块中有许多功能,我想在不同的项目或解决方案中重用。这样,当项目A调用此函数时,它将为传递的表单分配自己的FormIcon。当项目B调用相同的函数时,会将不同的FormIcon分配给传递的表单。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,527
地点
弗吉尼亚州切萨皮克
编程经验
10+
I did get the point. That's why I said you have to get the assembly that contains the form or that of the calling code. Use something like Assembly.GetExecutingAssembly() or form.GetType().Assembly.
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,527
地点
弗吉尼亚州切萨皮克
编程经验
10+
Another alternative is to look at your existing VB.NET code in a disassembler and try to see how VB implements the My feature.
 
最佳 底部