11 svar
262 visningar
Nea-27 är nöjd med hjälpen
Nea-27 67
Postad: 21 okt 2021 14:52

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 Visa färgmålas rektangeln om i den aktuella färgen.

Tips! Skapa en medlemsvariabel av typen Color med namnet färg som beskriver cirkelns färg och ge den värdet Color.Red. Vid klick på knappen Visa färg 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?

Laguna 28435
Postad: 21 okt 2021 15:00

På vilket sätt är det helt fel? Vad händer?

Lindehaven 820 – Lärare
Postad: 21 okt 2021 15:11

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.

Nea-27 67
Postad: 21 okt 2021 15:13

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();

}


}
}

Nea-27 67
Postad: 21 okt 2021 15:15
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å

Nea-27 67
Postad: 21 okt 2021 15:16
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();

}


}
}

Lindehaven 820 – Lärare
Postad: 21 okt 2021 15:41

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?

Nea-27 67
Postad: 21 okt 2021 16:20 Redigerad: 21 okt 2021 16:21

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

Laguna 28435
Postad: 21 okt 2021 17:33

Var det menimgen att markera att du är nöjd med hjälpen?

Lindehaven 820 – Lärare
Postad: 21 okt 2021 17:36

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
Nea-27 67
Postad: 21 okt 2021 19:54
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!

Nea-27 67
Postad: 21 okt 2021 19:56
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();

}


}
}


Svara Avbryt
Close