C# 如何从UserControl类调用方法?
我有一个Windows窗体应用程序,我想在UserControl类中调用一个方法 我的方法放在C# 如何从UserControl类调用方法?,c#,winforms,user-controls,C#,Winforms,User Controls,我有一个Windows窗体应用程序,我想在UserControl类中调用一个方法 我的方法放在桌面上: public Desktop(StringWrapper stringWrapper, AppConfigManager appConfigManager, RecoveryManager recoveryManager, IProfileManager profileManager, IScanPerformer scanPerformer, IScannedImagePrinter sca
桌面上
:
public Desktop(StringWrapper stringWrapper, AppConfigManager appConfigManager, RecoveryManager recoveryManager, IProfileManager profileManager, IScanPerformer scanPerformer, IScannedImagePrinter scannedImagePrinter)
{
public void ScanDefault()
{
if (profileManager.DefaultProfile != null)
{
scanPerformer.PerformScan(profileManager.DefaultProfile, new ScanParams(), this, notify, ReceiveScannedImage());
Activate();
}
else if (profileManager.Profiles.Count == 0)
{
ScanWithNewProfile();
}
else
{
ShowProfilesForm();
}
}
}
在同一文件夹中,我创建了一个用户控件类:
public partial class UserControlTest : UserControl
{
public UserControlTest()
{
InitializeComponent();
}
}
在这个UserControlTest
中,我想调用一个ScanDefault
方法。ScanDefault()是一个内联函数
它就像一个局部变量
您不能从Desktop()的范围之外调用它
要调用它,必须将其作为类方法并添加要在签名中使用的参数
public Desktop(StringWrapper stringWrapper,
AppConfigManager appConfigManager,
RecoveryManager recoveryManager,
IProfileManager profileManager,
IScanPerformer scanPerformer,
IScannedImagePrinter scannedImagePrinter)
{
ScanDefault(profileManager, scanPerformer);
}
public void ScanDefault(IProfileManager profileManager, IScanPerformer scanPerformer)
{
// ...
}
“如何从另一个类调用方法”这是一个非常常见的初学者问题
scanfault()
是实例方法,要调用它,需要包含它的类的实例。但是很难推荐任何解决方案(例如,newusercontrol1().ScanDefault()
),因为缺少上下文,您没有显示足够的代码来演示问题:您想在哪里调用它,这个方法(即Scan…()
方法)在做什么,等等。显示您的尝试和错误。Desktop
是类还是方法?它应该是没有参数的public class Desktop
,还是带有子函数ScanDefault的public void Desktop
?我已经像Olivier所说的那样对它进行了更改,它就是这样工作的。我只是无法从UserControl yetOk呼叫它,谢谢你的帮助。我已经这样做了,但是现在如何从UserControl调用它呢?您可以像调用任何其他类方法一样调用它:Scanfault(profileManager,scanPerformer);