Namespace connot be found and reference can't be added - c#

Error:
The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'
Code:
using System;
using System.Windows.Forms;
namespace SimpleCounter
{
public partial class Form1 : Form
{
int counter = 0;
public Form1()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
counter++;
lblCounter.Text = counter.ToString();
}
private void btnSubtract_Click(object sender, EventArgs e)
{
counter--;
lblCounter.Text = counter.ToString();
}
private void btnGolden_Click(object sender, EventArgs e)
{
counter += 2;
lblCounter.Text = counter.ToString();
}
}
}
According to How do I add assembly references in Visual Studio Code? going to command palette and then typing NuGet: Add New Package and than typing using System.Windows.Forms should solve this but no options was found,
I am new to .NET and C# so this is very confusing for my first project.

This comes down to the csproj, ultimately. If this is a .NET 7 project, then the following three entries are probably what you need (in a <PropertyGroup> in the project's csproj):
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
Note the some may already exist with different values - just replace them.

Related

Updating to recent version of IE on webbrowser control to run local jQuery

I have studied the several questions relating to this topic(Cannot force WebBrowser Control to render using current version of IE ,Use latest version of Internet Explorer in the webbrowser control) but my C# knowledge is too basic to find out where I should be placing this 'fix' in my code.
I am using visual studio 2015 and writing a winforms application in C#. The application consists of a web browser that displays local HTML files, some of which are using jquery and javascript. I know I have to edit the registry but I have no clue on how to go about this safely. The code provided in the second link seems good, but I don't know what to change in it so it applies to my project and where to place it in my code.
my Form1.cs so far.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Web_Browser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button4_Click(object sender, EventArgs e)
{
string curDir = Directory.GetCurrentDirectory();
this.webBrowser1.Url = new Uri(String.Format("file:///{0}/post-op/index.html", curDir));
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
}
private void navigateToPage()
{
var filemapping = new Dictionary<string, string>
{
{ "www.xy.com", "file:///{0}/XY/index.html" },
{ "www.post-op.com", "file:///{0}/post-op/index.html" },
{ "www.free-mail.com", "file:///{0}/mail/index.html"},
{ "test", "file:///{0}/index.html" },
};
var textEntered = textBox1.Text;
string filename;
if (filemapping.TryGetValue(textEntered, out filename))
{
string curDir = Directory.GetCurrentDirectory();
var uri = new Uri(String.Format(filename, curDir));
webBrowser1.Navigate(uri);
}
}
private void button3_Click(object sender, EventArgs e)
{
navigateToPage();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)ConsoleKey.Enter)
{
navigateToPage();
}
}
private void backButton_Click(object sender, EventArgs e)
{
webBrowser1.GoBack();
}
private void forwardButton_Click(object sender, EventArgs e)
{
webBrowser1.GoForward();
}
private void button6_Click(object sender, EventArgs e)
{
string curDir = Directory.GetCurrentDirectory();
this.webBrowser1.Url = new Uri(String.Format("file:///{0}/mail/index.html", curDir));
}
}
}
Sorry if this seems stupid. I have really tried to solve this issue on my own with the answers already given on the several questions on SO, but i'm a bit lost atm.

Visual Studio think that winform is a variable

So i've just started learning C#, and I came across a error saying that Form5 "is a variable but is used like a type". I have shown the page of code that has the error, but if you want to look at the bigger picture, here's my github repo ( I am a totally noob at gihub, so if anything is mispelled or totally wrong, I'm Sorry! : https://github.com/ValorZard/Chocobomb
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace animal_years
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
/*
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
*/
Form Form1 = new Form1();
Form1.Show();
}
private void button2_Click(object sender, EventArgs e)
{
Form Form3 = new Form3();
Form3.Show();
}
private void button3_Click(object sender, EventArgs e)
{
Form Form2 = new Form2();
Form2.Show();
}
private void button4_Click(object sender, EventArgs e)
{
Form Form4 = new Form4();
Form4.Show();
}
private void button5_Click(object sender, EventArgs e)
{
Form Form5 = new Form5();
Form5.Show();
}
}
}
Form5 "is a variable but is used like a type"
That is precisely correct. And clear. You're using the type name Form5 (which is a terrible, undescriptive name by the way) as a variable name too. A simple alternative is to write new Form5().Show(); -- why do you need a local variable in the first place?
Your class name in form5.cs file is outputDescriptionLabel. So you have to call that class name here. Use below code:
private void button5_Click(object sender, EventArgs e)
{
outputDescriptionLabel f = new outputDescriptionLabel();
f.Show();
}

Object reference not set to an instance of an object (Calculator project error)

Ok, I'm pretty sure my code is all correct, so I'm not sure why I'm getting this error. :P Here is my code -->
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Calculator
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1()); //This is where I am getting the error at
}
}
}
That's in my program.cs file. Here's what's in my Form1.cs file. -->
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn0_Click(object sender, EventArgs e)
{
txtbox.Text += btn0.Text;
}
private void btn1_Click(object sender, EventArgs e)
{
txtbox.Text += btn1.Text;
}
private void btn2_Click(object sender, EventArgs e)
{
txtbox.Text += btn2.Text;
}
private void btn3_Click(object sender, EventArgs e)
{
txtbox.Text += btn3.Text;
}
private void btn4_Click(object sender, EventArgs e)
{
txtbox.Text += btn4.Text;
}
private void btn5_Click(object sender, EventArgs e)
{
txtbox.Text += btn5.Text;
}
private void btn6_Click(object sender, EventArgs e)
{
txtbox.Text += btn6.Text;
}
private void btn7_Click(object sender, EventArgs e)
{
txtbox.Text += btn7.Text;
}
private void btn8_Click(object sender, EventArgs e)
{
txtbox.Text += btn8.Text;
}
private void btn9_Click(object sender, EventArgs e)
{
txtbox.Text += btn9.Text;
}
private void btnPoint_Click(object sender, EventArgs e)
{
if (txtbox.Text == "0")
{
txtbox.Text = "0.";
}
else
{
txtbox.Text += btnPoint.Text;
}
}
private void btnPlus_Click(object sender, EventArgs e)
{
//Add plus code here
}
private void btnMinus_Click(object sender, EventArgs e)
{
//Add minus code here
}
private void btnTimes_Click(object sender, EventArgs e)
{
//Add times code here
}
private void btnDivide_Click(object sender, EventArgs e)
{
//Add divide code here
}
private void btnEqual_Click(object sender, EventArgs e)
{
//Add equal code here
}
private void btnClear_Click(object sender, EventArgs e)
{
txtbox.Clear();
}
}
}
The error occurs when I attempt to enter in a number and then a decimal. For example, I press "2" and then ".". What happens is the error "Object reference not set to an instance of an object." pops up. Help is appreciated, thanks. Sorry if it's a stupid error. :P
Several helpful ideas have been given to you in the comments to your question, so I will try to aggregate what is the most preferred analysis route here and add my own comments:
First, the line where the exception occur (Application.Run(new Form1());) is not the real place to look for the bug. Application.Run is a WinForm infrastructure method which does some magic and then runs your code.
Second, the best way to track down where the issue is is by setting a breakpoint in the btnPoint_Click method. I assume you are new to WinForm and Visual Studio, so my suggestion is searching for "Winform Debug" in youtube - there are many videos showing how to do exactly that. Basically the idea is clicking with the mouse on the left side of the line you want to break into (or one line below if it's a method declaration like in your case), and then, run your application from within Visual Studio by pressing F5. This will enable Visual Studio to automatically attach to your WinForm process, and let you see variables in runtime.
This will allow you to continue line by line (clicking F10) and navigating to the exact place in code where the exception occur.
Last, since this happens when clicking on the '.' button, the only two variables that can cause this type of exception are txtbox and btnPoint, and if one of them is null - that would be it.
If you hover with the mouse on the varibale name during debugging (following the instructions above), you should see whether the content of the variable is null or not (null will simply say 'null').

namespace name 'Lastfm' could not be found

I am using Visual Studio 2010, and this is my first time using an API. When I try to use the Last.FM API, I get the "type or namespace name 'Lastfm' could not be found..." for lines 10 and 48. I've looked at some other StackOverflow questions on similar topics, but none seemed to apply directly.
I downloaded the lastfm-sharp.dll from http://code.google.com/p/lastfm-sharp/downloads/list and placed it in the projects folder. I then added it as a reference and do not recall doing anything else. I then used the example in http://code.google.com/p/lastfm-sharp/wiki/Examples to write my code.
Here is my code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Lastfm.Services;
namespace MusicOrganize
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DIRECTORY = this.FilePath.Text;
}
private void FilePath_TextChanged(object sender, EventArgs e)
{
DIRECTORY = this.FilePath.Text;
}
//Choose what Folder to work with
private void BrowseBtn_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
this.FilePath.Text = folderBrowserDialog1.SelectedPath;
}
}
//Organize Music in selected Directory
private void OrganizeBtn_Click(object sender, EventArgs e)
{
//Put all tracks into one folder
Music.Consolidate(DIRECTORY);
string API_KEY = "****";
string API_SECRET = "****";
Session session = new Session(API_KEY, API_SECRET);
Music.GetTrackTags();
}
public string DIRECTORY;
}
}
Thanks for any help you can provide.
Get the C# documentation.
You either miss the USING statement on the top with all the others that contains the namespace for the class, OR you forgot to add the project or dll as a reference.
And placed it in the projects folder?
Where you keep your lastfm-sharp.dll.Its not sufficient to put it in a Project folder.Put your dll in bin folder .

button push increment number to a text box c# winform

This is for a project I'm doing for class, I'm trying to create a win form that will have 2 buttons one that will increment in the text box when the button is pushed and one that will decrement when a different button is pushed. I'm having trouble finding the right line that will do what I want. Is there someone that could help me out?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Project10TC
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
{
this.Close();
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Teancum Project 10");
}
private void button1_Click(object sender, EventArgs e)
{
int i = 1;
textBox1.Text = Convert.ToString(i++);
}
private void button2_Click(object sender, EventArgs e)
{
int i = 1;
textBox1.Text = Convert.ToString(i--);
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
Since its a class project, I can only give you a hint.
You need to define the variable i outside of your button click events. Use the same variable in both events.
Also look at the difference between i++ and ++i
Declare the i variable as a field. Besides I would use ++i instead of i++. Otherwise you have different values in the textbox and in the variable. Also, no need to use Convert.ToString().
public partial class Form1 : Form
{
int i;
public Form1()
{
InitializeComponent();
i = 0;
}
//...
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = (++i).ToString();
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = (--i).ToString;
}
}

Categories