RGB-värden
Skriv ett program som visar vilken färg ett visst RGB-värde motsvarar. När programmet startar ska textrutorna innehålla talen 255, 0 och 0 och rektangeln ska vara röd. Användaren kan nu ändra talen i textrutorna och vid klick på knappen målas rektangeln om i den aktuella färgen.
Tips! Skapa en medlemsvariabel av typen med namnet som beskriver cirkelns färg och ge den värdet . Vid klick på knappen hämtas RGB-värdet från textrutorna och variabeln färg ändras till den aktuella färgen.
Jag förstår inte riktigt uppgiften. Men har börjat så här:
public partial class Form5 : Form
{
int röd;
int grön;
int blå;
public Form5()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
blå = int.Parse(tbxBlå.Text);
röd = int.Parse(tbxRöd.Text);
grön = int.Parse(tbxGrön.Text);
Graphics g = e.Graphics;
SolidBrush brush = new SolidBrush(Color.FromArgb(röd, grön, blå));
g.FillRectangle(brush, 50, 100, 450, 100);
}
private void Form5_Load(object sender, EventArgs e)
{
}
private void tbxRöd_TextChanged(object sender, EventArgs e)
{
}
private void btnVisaFärg_Click(object sender, EventArgs e)
{
Invalidate();
}
}
Dock är ju detta helt fel. Hade någon kunnat hjälpa mig med denna uppgift?
På vilket sätt är det helt fel? Vad händer?
Publicera gärna all kod. När jag kompilerar din kod fås ett antal kompileringsfel CS0246 därför att ett antal using-direktiv saknas.
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 KAP_8
{
public partial class Form5 : Form
{
int röd;
int grön;
int blå;
public Form5()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
blå = int.Parse(tbxBlå.Text);
röd = int.Parse(tbxRöd.Text);
grön = int.Parse(tbxGrön.Text);
Graphics g = e.Graphics;
SolidBrush brush = new SolidBrush(Color.FromArgb(röd, grön, blå));
g.FillRectangle(brush, 50, 100, 450, 100);
}
private void Form5_Load(object sender, EventArgs e)
{
}
private void tbxRöd_TextChanged(object sender, EventArgs e)
{
}
private void btnVisaFärg_Click(object sender, EventArgs e)
{
Invalidate();
}
}
}
Laguna skrev:På vilket sätt är det helt fel? Vad händer?
Det är redan i början av koden, där jag tänkte beskriva vilket värde alla olika färgerna ska få
Lindehaven skrev:Publicera gärna all kod. När jag kompilerar din kod fås ett antal kompileringsfel CS0246 därför att ett antal using-direktiv saknas.
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 KAP_8
{
public partial class Form5 : Form
{
int röd;
int grön;
int blå;
public Form5()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
blå = int.Parse(tbxBlå.Text);
röd = int.Parse(tbxRöd.Text);
grön = int.Parse(tbxGrön.Text);
Graphics g = e.Graphics;
SolidBrush brush = new SolidBrush(Color.FromArgb(röd, grön, blå));
g.FillRectangle(brush, 50, 100, 450, 100);
}
private void Form5_Load(object sender, EventArgs e)
{
}
private void tbxRöd_TextChanged(object sender, EventArgs e)
{
}
private void btnVisaFärg_Click(object sender, EventArgs e)
{
Invalidate();
}
}
}
Vid kompilering fås:
Microsoft (R) Visual C# Compiler version 4.8.4084.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240
color-form.cs(22,1): error CS0103: Namnet InitializeComponent finns inte i den aktuella kontexten
color-form.cs(29,17): error CS0103: Namnet tbxBlå finns inte i den aktuella kontexten
color-form.cs(30,17): error CS0103: Namnet tbxRöd finns inte i den aktuella kontexten
color-form.cs(31,18): error CS0103: Namnet tbxGrön finns inte i den aktuella kontexten
Var har du definierat dem?
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 KAP_8
{
public partial class Form5 : Form
{
int röd;
int grön;
int blå;
public Form5()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
SolidBrush brush = new SolidBrush(Color.FromArgb(röd, blå, grön));
g.FillRectangle(brush, 50, 100, 450, 100);
}
private void Form5_Load(object sender, EventArgs e)
{
}
private void tbxRöd_TextChanged(object sender, EventArgs e)
{
}
private void btnVisaFärg_Click(object sender, EventArgs e)
{
int r = int.Parse(tbxRöd.Text);
int g = int.Parse(tbxGrön.Text);
int b = int.Parse(tbxBlå.Text);
röd = 0 + r;
grön = 0 + g;
blå = 0 + b;
Invalidate();
}
}
}
Nu har jag fått till det så här långt. Nu måste jag bara få till det med att den till en början ska visa röd
Var det menimgen att markera att du är nöjd med hjälpen?
Fortfarande kompileringsfel
color-form.cs(21,1): error CS0103: Namnet InitializeComponent finns inte i den aktuella kontexten
color-form.cs(42,19): error CS0103: Namnet tbxRöd finns inte i den aktuella kontexten
color-form.cs(43,19): error CS0103: Namnet tbxGrön finns inte i den aktuella kontexten
color-form.cs(44,19): error CS0103: Namnet tbxBlå finns inte i den aktuella kontexten
Laguna skrev:Var det menimgen att markera att du är nöjd med hjälpen?
Jo, jag fick lite ideer om hur jag skulle gör från er och nu har jag löst uppgiften!
Lindehaven skrev:Fortfarande kompileringsfel
color-form.cs(21,1): error CS0103: Namnet InitializeComponent finns inte i den aktuella kontexten color-form.cs(42,19): error CS0103: Namnet tbxRöd finns inte i den aktuella kontexten color-form.cs(43,19): error CS0103: Namnet tbxGrön finns inte i den aktuella kontexten color-form.cs(44,19): error CS0103: Namnet tbxBlå finns inte i den aktuella kontexten
Hmm märkligt. För mig fungerade det...
Det var denna kod jag använde i Visual Studio 2019 c#.
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 KAP_8
{
public partial class Form5 : Form
{
int röd = 255;
int grön = 0;
int blå = 0;
public Form5()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
SolidBrush brush = new SolidBrush(Color.FromArgb(röd, blå, grön));
g.FillRectangle(brush, 50, 100, 450, 100);
}
private void Form5_Load(object sender, EventArgs e)
{
}
private void tbxRöd_TextChanged(object sender, EventArgs e)
{
}
private void btnVisaFärg_Click(object sender, EventArgs e)
{
int r = int.Parse(tbxRöd.Text);
int g = int.Parse(tbxGrön.Text);
int b = int.Parse(tbxBlå.Text);
röd = 0 + r;
grön = 0 + g;
blå = 0 + b;
Invalidate();
}
}
}