我有以下内容EventHandler,我添加了一个参数MusicNote音乐:
public void PlayMusicEvent(object sender, EventArgs e,MusicNote music)
{
music.player.Stop();
System.Timers.Timer myTimer = (System.Timers.Timer)sender;
myTimer.Stop();
}
Run Code Online (Sandbox Code Playgroud)
我需要将处理程序添加到Timer类似的内容中:
myTimer.Elapsed += new ElapsedEventHandler(PlayMusicEvent(this, e, musicNote));
Run Code Online (Sandbox Code Playgroud)
但得到错误:
"方法名称预期"
编辑:在这种情况下,我只是从包含此代码片段的方法传递e,我将如何传递计时器自己的EventArgs?
在下面的代码中,我定义了一个事件处理程序,并希望从中访问age和name变量,而不是全局声明名称和年龄.有没有一种方法,我可以说e.age和e.name?
void Test(string name, string age)
{
Process myProcess = new Process();
myProcess.Exited += new EventHandler(myProcess_Exited);
}
private void myProcess_Exited(object sender, System.EventArgs e)
{
// I want to access username and age here. ////////////////
eventHandled = true;
Console.WriteLine("Process exited");
}
Run Code Online (Sandbox Code Playgroud) 我使用Resharper 5.1代码分析很多次我从resharper得到一个评论
"通过匿名代表取消订阅"
#Part of Code
if (((bool)e.NewValue))
{
listView.PreviewTextInput += (o,args) =>
listView_PreviewTextInput(o,args,listView);
}
else
{
listView.PreviewTextInput -= (o, args) =>
listView_PreviewTextInput(o, args, listView);
}
Run Code Online (Sandbox Code Playgroud)
我怎么能纠正或优化这件事
我想List<string>使用我的事件传递我的参数
public event EventHandler _newFileEventHandler;
List<string> _filesList = new List<string>();
public void startListener(string directoryPath)
{
FileSystemWatcher watcher = new FileSystemWatcher(directoryPath);
_filesList = new List<string>();
_timer = new System.Timers.Timer(5000);
watcher.Filter = "*.pcap";
watcher.Created += watcher_Created;
watcher.EnableRaisingEvents = true;
watcher.IncludeSubdirectories = true;
}
void watcher_Created(object sender, FileSystemEventArgs e)
{
_timer.Elapsed += new ElapsedEventHandler(myEvent);
_timer.Enabled = true;
_filesList.Add(e.FullPath);
_fileToAdd = e.FullPath;
}
private void myEvent(object sender, ElapsedEventArgs e)
{
_newFileEventHandler(_filesList, EventArgs.Empty);;
}
Run Code Online (Sandbox Code Playgroud)
从我的主要表格,我想得到这个列表:
void listener_newFileEventHandler(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud) 我想将本地对象传递给事件处理程序.我怎样才能做到这一点?例如,如何在事件处理函数"hyperlinkButton_Click"中引用在下面的main函数中声明的"graphic"对象?
void main()
{
Graphic graphic = new Graphic();
hyperlinkButton.Click+=new RoutedEventHandler(hyperlinkButton_Click);
}
void hyperlinkButton_Click(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)