Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

The question is How can I make a .Net Winforms application that only runs in the System Tray?

I was trying to figure out how to create a System Tray application and came across this question. It provided better information than what I had found online so far, so I was quite happy to see it. I had some trouble understanding the answers, however one of the newer deleted answers pointed to a good tutorial that helped me find my solution.

I wanted to upvote the deleted answer, but it was deleted by a moderator because it was a link-only answer, so I edited the answer to make it a complete answer and flagged it for a moderator to undelete so I could vote it up.

But instead of undeleting the answer, the moderator closed the question.

I feel this question provides a lot of great information and links to good resources related to creating a system tray application in .Net, and I don't understand why it got closed as not-constructive.

Why was it closed? And if this was a mistake, can I get it reopened?

(And if it does get re-opened, can a moderator undelete the answer I edited so I can vote on it? Its no longer a link-only answer, and I feel it provides the best answer for someone looking to learn how to create a System Tray application, but I can't undelete it because a moderator deleted it.)

share|improve this question

closed as off-topic by CRABOLO, rene, Monica Cellio, gnat, Doorknob Jan 21 '15 at 21:53

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question pertains only to a specific site in the Stack Exchange Network. Questions on Meta Stack Exchange should pertain to our network or software that drives it as a whole, within the guidelines defined in the help center. You should ask this question on the meta site where your concern originated." – CRABOLO, rene, Monica Cellio, gnat, Doorknob
If this question can be reworded to fit the rules in the help center, please edit the question.

@casperOne seems to be on a roll today... – deceze Aug 1 '12 at 15:44
@MichaelPetrotta And re-closed a 2nd time by the same moderator. Community moderation at its finest... – Rachel Aug 1 '12 at 15:49
@Rachel Are you arguing on the grounds of the question, or because you placed an answer (that was deleted, not by me) on a question that you knew was crappy and could use work? Your motives in this are suspect. It would have come across more genuine if you asked why the result of your flag to undelete your answer didn't result in it being undeleted. – casperOne Aug 1 '12 at 15:50
@casperOne I am arguing on the grounds of the question because I could not find anything useful on Google until I came across that question. It helped me understand the process and find a solution to what I wanted. The deleted answer is not mine. I simply wanted to upvote it. I knew link-only answers often get deleted, so I edited it to copy some of the main information from the link into the answer itself, and flagged it for undeletion so I could vote it up. I didn't expect such a useful question to get closed instead. – Rachel Aug 1 '12 at 15:53
The question helped you understand the process, or the answers did? The fact that it got reasonable answers does not make the question any better. – Bart Aug 1 '12 at 15:54
@Rachel Lists of examples are not useful on Stack Overflow. It's equivalent to shopping recommendations, which we don't allow. Bringing a summary from a link is a good thing, but in the future, please think of it in the context of the larger question. – casperOne Aug 1 '12 at 15:55
@Bart Both. The question was the exact same as what I wanted to do, and the answers provided me with the explaination of what I needed (Replace Form with ApplicationContext, and create a NotifyIcon) – Rachel Aug 1 '12 at 15:55
A Google search for "Writing a Windows system tray application with .NET" yields the closed question as the first match, and Creating Tray Applications in .NET: A Practical Guide as the second match, which is the tutorial linked by the accepted answer. – Robert Harvey Aug 1 '12 at 15:56
@deceze I'm on a roll every day, but I'm not sure what you mean =) – casperOne Aug 1 '12 at 15:57
@RobertHarvey I am more likely to click on SO for answers than a blog post, and the blog post you listed was beyond my understanding at the time. I needed something simple, like the SO answers provided. – Rachel Aug 1 '12 at 15:58
The fact that the question is closed does not change that at all. The information is still there. And the question still is not good, so why reopen it? – Bart Aug 1 '12 at 15:59
@Rachel: Well, the question is unlikely to be deleted, the OP already has his answer, and by your own admission the information is already good, so no new answers need to be posted. If someone wants to make the question better so that it's not a broken window, they can flag to reopen. – Robert Harvey Aug 1 '12 at 16:01
@RobertHarvey Except for the fact I couldn't easily understand the information until I came across the tutorial link in the deleted answer. I have made an edit to the question to try and remove some of the "broad recommendations" you are seeing. Please consider reopening. – Rachel Aug 1 '12 at 16:03

It's asking for a complete tutorial. That's not really a reasonable expectation. Has the author of the question demonstrated that he's performed some basic research, or do we have to teach him the entire concept from scratch? That's what books are for.

The accepted answer scratches the surface, but the real meat is in an external link.

share|improve this answer
Did you see the deleted question I edited? There is a very simple answer to the question. You don't need a complete book or tutorial to answer it. You only need a few lines of code, and the user can figure out what they're doing from there – Rachel Aug 1 '12 at 15:54
Google already has plenty of help for this. – Robert Harvey Aug 1 '12 at 15:59
Google was providing me with links that I was having trouble understanding, or that did not suit what I wanted. That SO question provided provided me with what I needed: simple explanations to a situation exactly similar to mine. – Rachel Aug 1 '12 at 16:02
Also, it is not asking for a complete tutorial. It is merely asking how to accomplish something. The correct answer is only a few lines of code: Replace Form1 in the Application.Run line of Program.cs with a class that inherits from ApplicationContext, and create a NotifyIcon in that class. That's it. That's the information I needed, and that I suspect many other users need too. – Rachel Aug 1 '12 at 16:10
I've already reopened your question, based on the removal of the "correct" part. Sooo many people want to be "correct." There's nothing wrong with that in principle, but programming is an exercise in tradeoffs. There is no "correct" way. There is only the way that best meets your customer requirements. – Robert Harvey Aug 1 '12 at 16:11
Thank you, both for re-opening the question and for undeleting the answer that I found more helpful than the rest. – Rachel Aug 1 '12 at 16:13

It's a very broad question, and as written, it's 'not constructive'. What is the canonical right way? Who can say? The fact that it's interesting doesn't stop it from working within the framework of the Q & A that is Stack Overflow.

At best, it should be locked as Historically relevant (if there are a number of external links to it), otherwise the material is better left for a blog post somewhere than on Stack Overflow.

share|improve this answer
Perhaps "the right way" was a bad choice of words. I made an edit to remove those words, and hope you will reconsider the close. The simple and short information provided is what I needed to know (replace Form with ApplicationContext, and create a NotifyIcon). This sort of information should be welcomed by SO, not turned away. – Rachel Aug 1 '12 at 16:00
up vote 1 down vote accepted

The question was closed Not Constructive because it asked (emphasis mine)

What's the correct way to write a Windows system tray application in C#?

Not an application that can minimize to the tray, but one that only exists in the tray, and can have an icon tool tip and "right click" menu.

There is no one right answer to that since there are many correct ways to create a system tray application, and the solution you use depends on what you're actually trying to do with your application, so the end result is a list of everyone's favorite way of making a tray application.

The question and answers are still quite useful for users trying to figure how to create an application that only exists in the system tray, so I edited the question to remove the words that could possibly lead to a not-constructive list of answers, and re-focused it on what the OP actually seemed to be asking, which was how to create a system-tray only application.

What do I need to do to make a WinForms application run in the System Tray?

Not an application that can minimize to the tray, but one that exists only in the tray, and that has an icon tool tip and "right click" menu.

And a moderator reopened the question.

Thanks to everyone for helping me understand this, and for your reopen votes :)

share|improve this answer
Why shouldn't this be deleted? I'm not really sure what this adds to your question, and it also begs the question of if you know why or have an answer, why ask in the first place? Most of it is just a rehash of your question, along with a "thank you" at the end. – casperOne Aug 1 '12 at 19:37
@casperOne I posted this so I could mark it as accepted, although I know I can't accept it for two days. I didn't know the answer when I posted the question, however some of the comments have helped me understand the problem with the question, and lead to a resolution. I'd like to share that resolution so others can understand as well. – Rachel Aug 1 '12 at 19:40
Wasn't all this already adequately covered? Why did you feel compelled to rehash it here? – Robert Harvey Aug 1 '12 at 19:54
@RobertHarvey It was covered in comments, but comments are not answers so I combined the relevant comments into one answer to accept it. The current answers do not contain this information. One states the question is asking for a tutorial, which isn't a reasonable explanation since the answer needed is only a few lines of code, and the other is that as written, it is too broad and that if anything we should lock it. While I understand now what words were making it too broad, I disagree that it should be locked. The answer was to edit out the offending words and reopen, which is what happened. – Rachel Aug 1 '12 at 20:01
@RobertHarvey You may delete it if you want, but I thought it offered some things that were not there in the other answers, such as the exact words that made it too broad and the actual resolution to the question. – Rachel Aug 1 '12 at 20:02
It's still not a great question, but that's part of the reason we have moderators: to solve disputes on borderline questions. If everything were black and white, you wouldn't need moderators. In any case, most of what you've said here is adequately covered elsewhere; note that the question has an edit history, so everyone can already see exactly what happened. – Robert Harvey Aug 1 '12 at 20:03
@RobertHarvey It may not seem like a great question from here, but to someone actually facing the same situation as the OP, it is a great question. I am guessing that's where large percentage of the current 54 upvotes comes from - Users facing the same situation and looking for an answer. – Rachel Aug 1 '12 at 20:06
Note that the question currently has three new close votes on it. If it closes again, I won't reopen. – Robert Harvey Aug 1 '12 at 20:07
@RobertHarvey I had noticed that, although I'm really not sure why those close votes are there. I thought the question was pretty straight forward and had one-right-answer. It is not overly broad since the code needed to make an application exist in the system tray only is fairly short. The top answer does list a lot of things to consider, although a lot of those things are not really relevant to what the OP was asking (such as WPF support, or dynamic context menus) – Rachel Aug 1 '12 at 20:13
Because of the rampant existence of help vampires (Google it) on Stack Overflow, the community generally expects people to "show their work... what have you tried so far, and why didn't it work for you?" This OP didn't do that. – Robert Harvey Aug 1 '12 at 20:14
@RobertHarvey I looked through Google a bit and wasn't having much luck finding a clear, simple explanation of how to accomplish what I wanted until I came across that SO question. There are many ways to interact with the system tray, and I simply wanted a system-tray-only application. Oh well, even if it gets closed again at least the answer I found the most helpful now exists, and will hopefully help others. Still, would be a shame to close such a useful question. I thought one of the reasons SO exists is so people don't have to wade through random blog posts or forums to find solutions. – Rachel Aug 1 '12 at 20:18
Closing doesn't mean the death of a question, only its imminent demise. The post could live on the site indefinitely in its closed state. – Robert Harvey Aug 1 '12 at 20:26

Not the answer you're looking for? Browse other questions tagged .