- Felvarrták az Arctic rackmount rendszerekhez szánt CPU-hűtőjének ráncait
- Háromféle kivitelben, és nem kis kapacitásokkal jönnek a Micron 6550 ION SSD-i
- Már a Samsung sem szolgálja ki modern AI lapkákka Kínát
- Havazáshoz igazított kiadás kap a Steam Deck OLED
- Híres régészprofesszor segíti a GeForce-ok eladását
- Intel Core i3 / i5 / i7 8xxx "Coffee Lake" és i5 / i7 / i9 9xxx “Coffee Lake Refresh” (LGA1151)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- HiFi műszaki szemmel - sztereó hangrendszerek
- RAM topik
- Milyen notebookot vegyek?
- Kormányok / autós szimulátorok topikja
- TCL LCD és LED TV-k
- Projektor topic
- Hobby elektronika
- Androidos tablet topic
Új hozzászólás Aktív témák
-
x007
tag
Majdnem
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Osszeg: {0}, Atlag: {1}", n*(n+1) / 2, (double)(n+1) / 2.0);
}De lehet pl így is:
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Osszeg: {0}, Atlag: {1}",
Enumerable.Range(1, n).Sum(),
Enumerable.Range(1, n).Select(v => (double)v).Average());
} -
Lakers
tag
Sziasztok.
public C(int f): this(f,10.0) { ... } értelmezésével van gondom
class A
{
private int h;
protected double g;
public A() { ... }
public A(int x) { ... }
}
class B:A
{
protected string s;
public B() { ... }
public B(int a) { ... }
}
class C:B
{
public bool l;
public C(int f, int d) { ... }
public C(int f):this(f,10.0) { ... }
}Amelnyek a futása során ezeket a konstruktorokat hajtja végre.
1. class A -> A()
2. class B -> B()
3. class C -> C(30,10.0)
4. class C -> C(30)És én ezt olvastam, hogy: Ugyanahhoz az osztályhoz több, paraméterezésben különböző konstruktor is készülhet. Ekkor lehetőség van egyik konstruktorból valamely másik meghívására. A meghívásnak speciális szintaktikája van. A hívó konstruktor formális paraméterlistája mögé, a konstruktortörzs előtt kell egy kettőspont mögött feltüntetni.Amennyiben valamely másik saját osztálybeli konstruktort kell meghívni, akkor a használandó kulcsszó a this
Ekkor a this-nek nem azt kéne csinálnia, hogy meghívja a public C(int f, int d) { ... } konstruktort, mert végül is két paramétre van.
De én valamit félre értelmeztem, segítsetek korigálni, hogy akkor az a this.
Habár most ahogy kezdem visszaolvasni... A public C(int f): this(f,10.0) { ... } meghívja a public C(int f, int d) { ... } konstruktort amelyben már meg van a 30,10.0 érték, és onnan public C(int f): this(f,10.0) { ... } "lemásolja", az első értéket, az az a 30-ast?
Másik kérdésem, ezt gyakran alkalmazzák?
[ Szerkesztve ]
-
bpx
őstag
először meghívja a 2 paraméteres konstruktort (az ami a this mögött van), utána meg az eredetit amit a példányosításnál hívtál (1 paraméteres)
most így hirtelen nem tudok értelmes gyakorlati példát mondani, de pl. akkor érdemes használni, ha egy osztálynak több konstruktora is van, többféleképp is lehet példányosítani, és a konstruktorok egy bizonyos részig ugyanazt csinálják
ekkor érdemes kivenni ezt a közös részt külön, és ahelyett hogy többször kellene ugyanazt leírni, elég csak a : this-el hivatkozni ráde egyébként ez le sem fordul, mert a 10.0 az double
[ Szerkesztve ]
-
ArchElf
addikt
Viszonylag gyakran akkor alkalmazzák, ha több opcionális kontruktor változóra lehet szükség - default konstruktor gyártására lehet alkalmani a this módisítót...
Érdemes megnézni az előre legyártott MS osztályokat, ott bőven van példa opcionális konstruktor változókra:
Pl System.IO.FileStream:public FileStream(IntPtr handle, FileAccess access);
public FileStream(IntPtr handle, FileAccess access, bool ownsHandle);
public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
public FileStream(SafeFileHandle handle, FileAccess access);
public FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync);
public FileStream(string path, FileMode mode);
public FileStream(string path, FileMode mode, FileAccess access);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, bool useAsync);
public FileStream(string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options);
public FileStream(string path, FileMode mode, FileSystemRights rights, FileShare share, int bufferSize, FileOptions options);
public FileStream(string path, FileMode mode, FileSystemRights rights, FileShare share, int bufferSize, FileOptions options, FileSecurity fileSecurity);(kicsit sorbarendeztem őket, hogy jobban látszódjanak a csoportok)
Ezeket mind meg lehet csinálni egyesével is, de sokkal egyszerűbb (és biztosabb megoldás) több különálló csoportra osztani, és a csoporton belül a speciálisabbakból (kevesebb változót tartalmazót) meghívni az általánosabbakat.AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
bpx
őstag
adott az alábbi kód/osztályok:
abstract class UdpTransportManager
{
...
public static UdpTransportManager LookUp(UdpChannelListener<IChannel> channelListener)
{ ... }
....
}
public class UdpChannelListener<TChannel> : ChannelListenerBase<TChannel> where TChannel : class, IChannel
{
...
protected override void OnOpen(TimeSpan timeout)
{
...
UdpTransportManager transportManager = UdpTransportManager.LookUp(this);
...
}
...
}na most itt a LookUp hívásakor, nekem azt mondja, hogy a TChannel-t nem tudja IChannel-re konvertálni
ezzel most így mit lehet kezdeni/hol a hiba?explicit kasztolással nyilván lefordul, de úgy nem működik
[ Szerkesztve ]
-
ArchElf
addikt
Szerintem azért nem működik, mert a this-el hívod meg, ami a jelen egyedre mutat, ami egy UdpChannelListener és ez nem implementálja az IChannel interface-t.
Olyan egyedre kell meghívni a LookUp metódust, ami implementálja az IChannel-t:
http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.ichannel.aspxAE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
bpx
őstag
válasz ArchElf #1060 üzenetére
a működés logikája az helyes, template nélkül működik rendesen
ez inkább szintaktikai kérdés
amit nem értek, hogy a ChannelListenernél a TChannel-re meg van adva hogy az egy class, IChannel, akkor ha paraméterként átadom a példányt, akkor miért kapok olyan hibaüzenetet, hogy a TChannelt nem tudja IChannelre konvertálni -
Lakers
tag
Sziasztok!
A kódom egy részletét látjátok lent. A kérdésem, az hogy a public Tyuk osztálynak az abstract Baromfi osztály az őse, de az abstract Baromfi osztálynak az abstract Allat osztály az őse.
Ebben az esetben a fordító hogy a az abstract double Ado property nem származhat az Allat osztályból:
Error 1 'proba.Tyuk' does not implement inherited abstract member 'proba.Allat.Ado.get'Mit rontottam el?
abstract class Allat
{
public static int AdoAlap;
private int suly;
public abstract void Hangoskodik();
public abstract double Ado {get;}
public int Suly
{
get { return this.suly; }
set { this.suly = value; }
}
}
class Sertes:Allat
{
public uint MalacSzam;
public override void Hangoskodik()
{
Console.WriteLine("röf-röf");
}
public override double Ado
{
get { return AdoAlap*2*Suly/5000; }
}
}
abstract class Baromfi:Allat
{
public int RepulesiMagassag;
public void Hizlal (int deka)
{
suly+=deka;
if (this.suly>200)
suly=200;
}
}
class Tyuk:Baromfi
{
public override void Hangoskodik()
{
Console.WriteLine("kot-kot");
}
public void Kapirgal()
{
Console.WriteLine("kapirgálok");
}
public override double Ado
{
get { return AdoAlap*2* Suly/1000; }
}
} -
Lortech
addikt
Ebben az esetben a fordító hogy a az abstract double Ado property nem származhat az Allat osztályból:
Feltételezem, azt akartad mondani, hogy a fordító azt mondja, hogy...
De nem ezt mondja, hanem azt, hogy a Tyuk osztályban meg kell adnod az Ado property implementációját, mivel az ősben abstract metódus.
Viszont a kód amit beszúrtál, nem erre utal, mert ahogy nézem ott van az implementáció, amire panaszkodik. Viszont a Baromfi.Hizlal metódusodban nem lesz jó ha suly változóra hivatkozol (így, kis kezdőbetűvel), mert az az ősének egy privát mezője, amit a Sertes osztályból nem tudsz elérni, viszont épp ezért van propertyd rá, a Suly.[ Szerkesztve ]
Thank you to god for making me an atheist
-
Lakers
tag
válasz Lortech #1063 üzenetére
köszi, hogy megneztéd neked is -Zeratul-
igen, félre írtam, és köszönöm, hogy felhívtad a figyelmet a kis és nagy betűre, na meg hogy a property-re hivatkozik és hozzá a magyarázatot, ez hasznos volt
Megírtam újra a kódot, és így jó... nem értem, hogy az előbb miért panaszkodott...
-
Lakers
tag
Lenne egy kérdésem a Visual Studio 2008-al kapcsolatban.
Létrehoztam egy project fájlt, dolgozok benne, elmentem a program.cs-t és az osztaly.cs-t
Azt látom, hogy van külön mód, hogy a program.cs-t vagy az osztaly.cs-t más néven elmentsem, és így az eredetit ne írja felül.Project fájlnál is van erre lehetőség valahol a VS2008-ban? (vagy bármilyen más megoldás)
Mert én szeretném az egész project-et elmenteni úgy, hogy ne írja felül az előzőleg elmentettet... Mert nem akarok emiatt új projektet létrehozni és copy/pastelni.
-
Lakers
tag
Sziasztok!
Kiírásnál estem gondolkodba, elkezdtem probálgatni.
Itt van néhány kódrészlet:abstract class Allat
{
private int suly;
public static int AdoAlap; // megosztott: minden egyes példány ugyanazt látja
public abstract void Hangoskodik();
public abstract double Ado { get; }
public int Suly
{
get { return this.suly; }
protected set { this.suly = value; }
}
public virtual void Hizlal(int deka)
{
Suly += deka;
if (this.Suly > 200)
Suly = 200;
}
} class Sertes:Allat {
public uint MalacSzam;
public override void Hangoskodik()
{
Console.WriteLine("röf-röf");
}
public override double Ado
{
get { return AdoAlap * 2 * Suly / 5000; }
}
public override void Hizlal(int deka)
{
Suly+=deka;
} }és még a főprogramban:
Sertes s = new Sertes();
s.MalacSzam = 4;
s.Hizlal(25000);
for (int i = 0; i < 5; i++)
{
udvar.Add(s);
}
...
Sertes disznocska = at as Sertes; //Ha at változóban Sertes példány volt
if (disznocska !=null)
{
Console.WriteLine("Súly: {0} Adó: {1} Malac Száma: {2}",
disznocska.Suly,
disznocska.Ado,
disznocska.MalacSzam);
}
...Ez ideig rendben van. A MalacSzam (ami sorszám lenne), és a Sulyt is (hízlal metóduson keresztül) mindegyiknél ugyanaz.
Viszont elkezdtem próbálgatni, és más kis rész feladatotak kitalálni rá:
s.Hizlal(25000);
for (int i = 0; i < 5; i++)
{
udvar.Add(s);
s.MalacSzam += 1;
}
Akkor a súlya 125000 lesz ez okés és. De a MalacSzam mindenütt 5 lesz... Ez miért következett be?
Mert én úgy akartam, hogy a MalacSzam mint sorszam, kiíratásnál 1,2,3,4 legyen.
Ezt hogyan lehet megvalósítani?
(lehet a C után az objektum orientált gondolkodásom még nem az igazi, vagy csak pusztán amatőr hibát vétek) -
Gyuri16
senior tag
ez a resz nem jo:
s.Hizlal(25000);
for (int i = 0; i < 5; i++)
{
udvar.Add(s);
s.MalacSzam += 1;
}itt az s valtozod egy Sertes osztalyu objektumra mutat. amit csinal a ciklusod, hogy hozzaadja ugyanazt az egy malacot 5-szor, es minden lepesnel egyel noveli a szamat, ezert aztan az udvarodban 5-szor ugyanarra az objektumra mutato referenciaid lesznek.
ha kulonbozo malacokat akarsz hozzaadni akkor be kell szurni valahova a ciklusodba egy new-t, es igy egy uj Sertes objektum jon letre, ami fuggetlen a tobbitol:Sertes s;
for (int i = 0; i < 5; i++)
{
s=new Sertes();
s.Hizlal(25000);
s.MalacSzam=i+1; //egytol legyen szamozva
udvar.Add(s);
}ennek az eredmenye: az udvarban 5 db diszno lesz, 1..5 sorszamokkal, mindegyik 25000-re hizlalva.
mod:
"Ez ideig rendben van. A MalacSzam (ami sorszám lenne), és a Sulyt is (hízlal metóduson keresztül) mindegyiknél ugyanaz."
ez ugyanaz a hiba mint amit irtam, nem a MalacSzam es Suly ugyanaz, hanem a diszno ugyanaz, csak 5 helyen hivatkozol ra[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Inv1sus
addikt
Sziasztok!
Hogy lehet azt megcsinálni, hogy bejelentkezés után az oldalra, amire rádobott csak akkor jelenítse meg, ha tényleg be van lépve valaki. Szóval ne jelenítse meg, ha valaki csak simán megadja az elérési utat.
Azt hiszem ezt Sessionnal kell megoldani, de nem találtam anyagot a neten.*** WEBDESIGN, GRAFIKUS DESIGN, FRONT-END PROGRAMOZÁS ***
-
Inv1sus
addikt
válasz Inv1sus #1070 üzenetére
Elöző kérdésem nem fontos, de az új igen:
Hogy lehet azt megoldani, hogy egy adatbázisba elmentet képet (varbinary(MAX) típusban) kiolvashassak aspx-be?
A tanárom szerint egy olyan fapados megoldás kellene, hogy az image ugye src-be kapja a kép elérését. Na oda be kellene egy aspx-es fájlt tenni, ami a bináris képet tartalmazná és a content-type-ja kép lenne az egésznek. Valaki segítsen pls. Ettől függ az ötösöm*** WEBDESIGN, GRAFIKUS DESIGN, FRONT-END PROGRAMOZÁS ***
-
ArchElf
addikt
válasz Inv1sus #1071 üzenetére
Asszem a PHP (vagy PHP/MySql, vagy talán SQLite, vagy egyéb programozós?) topicban ezt kifejtettem... Használj paraméterezett feltöltést. (MSDN > SqlParameter)
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Draker
csendes tag
Sziasztok!
Remélem jó helyre írok. Kéne egy kis segítség:
Adott egy comboBox, és a MouseEnter esemény segítségével már megoldottam, hogy egy textBox jöjjön létre. Ez szépen működik is, a létrejövő textBox koordinátáit beállítottam az egér jelenlegi koordinátáira (és természetesen el is tűnik a textBox, ha elviszem az egeret a comboBox-ról) - ez amolyan súgó szerű akarna lenni.Azonban a problémám az, hogy a létrejövő textBox nem a comboBox felett, hanem mögötte jelenik meg (ezért nem olvasható benne a szöveg), hogy tudom azt beállítani, hogy a létrejövő textBox minden felett látszódjon?
Gondolom a megoldás egy paraméter állítással megoldható, én már kipróbáltam mindent, és olvasgattam a fórumokon (angolon is persze), de sajna nem találtam megoldást.
Kezdő vagyok még és bocs, ha hülyeségeket is írok néha, de ez most nagyon fontos lenne.Előre is köszönöm, ha valaki tud nekem segíteni.
-
Latency
senior tag
Üdv.
Egy kis magyarázat kellene, hogy hogyan tudnám használni egy típusos dataset select metódusát. Kerestem már a neten tutorialt hozzá, de valahogy nem egészen érthető ez nekem. Maga a feladat amúgy az lenne, hogy meg kellene nézni, hogy a táblázat egyik oszlopa tartalmazza-e már azt az értéket.
Remélem tud valaki segíteni.Előre is kösz.
-
Relisys
senior tag
Hello!
Olyan kérdésem lenne hogy c#-ban hogy lehet utasítással megszüntetni objektumot? Próbáltam destruktort hívni de nem igazán jött össze.
-
Lortech
addikt
válasz Relisys #1079 üzenetére
Az objektumra referenciát tartó változó(k)nak null értéket adsz és rábízod a GC-re, de korrekt válaszhoz tudni kéne pontosan, hogy milyen objektumról van szó, mi a működése, hogy van megvalósítva, milyen erőforrásokat fog( managed, unmanaged) van-e IDispose megvalósítása) ..
Thank you to god for making me an atheist
-
Bumbi0
csendes tag
A segítségeteket szeretném kérni.
Egy Hotkey programot írok, de nem tudom, hogy hogy tudnám paraméternek a textbox-ból jövő karaktert, hogy az legyen a hotkey én nem amiét én előr beállítok. Jelen esetben az 'A'.
Előre is köszi asegítséget!private void textBB_TextChanged(object sender, EventArgs e)
{GlobalHotKey ghk = new GlobalHotKey(Win32.KeyCodes.VK_A, false, false, false, false);
ghk.Hotkey += new VoidEventHandler(Hotkey);
}Tehát a VK_A helyére a textBB-ből jövő karakter kódját változó formájában.
-
bpx
őstag
ne a TextChanged event-et használd, hanem a KeyPress-t
annak van KeyPressEventArgs e argumentuma, ahol az e.KeyChar-ral megkapod hogy mi volt a lenyomott karakter (csak valós karakterekre működik, char típust ad vissza, neked kell belőle Key-t "varázsolni" - ha ctrl,alt,shift, stb vezérlőkarakterek is kellenek, akkor KeyDown/KeyUp eventek, és e.KeyData) -
bpx
őstag
én csak azt láttam, hogy az eventben, amit használtál nem lehet kideríteni, hogy melyik billentyűt nyomták le
hogy hogyan lehet char-ból virtuális key-t csinálni? az jó kérdés, ezt a részt nem ismerem annyira, lehet hogy van vmi pofonegyszerű megoldás .NET-ben, amiről nem tudok
lehet pl. olyat, hogy csinálsz egy asszociatív adatszerkezetet (Dictionary, HashTable, ami épp tetszik), amiben előre eltárolod a konstansokat, és a kapott char-ral címzed
-
ArchElf
addikt
private GlobalHotKey ghk = null;
private VoidEventHandler ghk_event = null;
private void textBB_KeyDown(object sender, KeyEventArgs e)
{
ghk = new GlobalHotKey(e.KeyData, false, false, false, false);
textBox1.Text = e.KeyData.ToString();
}
private void SetHotKey_Click(object sender, EventArgs e)
{
if (ghk_event != null)
ghk.Hotkey -= ghk_event;
ghk_event = new VoidEventHandler(Hotkey);
ghk.Hotkey += ghk_event;
}AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
rvn_10
senior tag
Hello! Valakinek nincs olyan programja, amely c# ban forgatható kockát rajzol? Nagyon megköszönném
Gigabyte B760M Gaming X, I5 13400, 2x16 DDR4 Corsair Vengeance 3600Mhz, NZTX Kraken X61, Sapphire Pulse RX 5600XT, EVGA Supernova G2 750W, Samsung 850 Evo 128Gb, WD Blue 1TB, Phanteks Enthoo Pro M Acrylic
-
ArchElf
addikt
válasz ArchElf #1087 üzenetére
Úgy nézem ennél kicsit bonyolultabb lesz... Valószínűleg szét kell választani a módosítókat a key-code-tól. Egyszerűbb is lenne rögtön az exportált user32 függvényeket használni, nem ezt a GlobalHotKey osztály.
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
QuippeR
tag
válasz Inv1sus #1071 üzenetére
Ha esetleg még nem ugrott az ötösöd, akkor segítek:
<%@ WebHandler Language="C#" Class="FileStream" %>
using System;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
/// <summary>
/// Reponsible for flushing out the file from the database to the user.
/// </summary>
public class FileStream : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
// get the file id
string fileId = context.Request.QueryString["file"];
using (SqlCommand command = new SqlCommand())
{
// get the file from database
command.Connection = new SqlConnection("connectionstring");
command.CommandText = "SELECT * FROM files where file_id = @FileId";
command.Parameters.AddWithValue("@FileId", fileId);
command.Connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read())
{
// flush out the binary data to the user
context.Response.Clear();
context.Response.ContentType = (string) reader["file_type"];
context.Response.AddHeader("Content-Disposition", String.Format("inline;filename={0};", reader["file_name"].ToString()));
context.Response.AddHeader("Content-Length", reader["file_size"].ToString());
context.Response.BinaryWrite((byte[]) reader["file_content"]);
context.Response.End();
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}Ezt mentsd le egy FileStream.ashx nevű fájlba. A lényege, hogy az url-ben megadod a fájlt id-jét például így: http://localhost/FileStream.ashx?file=4. Az adatbázisban persze a megfelelő adatoknak (file_name, file_size, file_type, file_content) benne kell lennie ehhez.
A feltöltésnél így tudod kiszedni ezeket az értékeket egy fuNewUpload nevű FileUpload controlból:
string filename = fuNewUpload.PostedFile.FileName.Substring(fuNewUpload.PostedFile.FileName.LastIndexOf('\\') + 1);
string filetype = fuNewUpload.PostedFile.ContentType;
int filesize = fuNewUpload.PostedFile.ContentLength;
byte[] filecontent = new byte[fuNewUpload.PostedFile.ContentLength];
fuNewUpload.PostedFile.InputStream.Read(filecontent, 0, fuNewUpload.PostedFile.ContentLength); -
rvn_10
senior tag
-
ArchElf
addikt
Nem tudom, te hol találtad ezt a GlobalHotKey-t, de itt van róla egy kicsit bővebb magyar leírás: link
Amúgy ez az a két függvény:
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
[DllImport("user32.dll")]
public static extern bool UnRegisterHotKey(IntPtr hWnd, int id);AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
ArchElf
addikt
Miért? Persze a kódban statikusan van megoldva, de ott a két függvény, amivel be és ki lehet regisztrálni hotkey-eket. Egyszerűen, amikor változtatni akarsz, akkor kiregisztrálod az előzőt, és beregisztrálsz egy újat.
Az ott közzétett rutinon csak annyit kell változtatni, hogy nem külön adod meg a módosítókat (SHIFT/ALT/CTRL/WIN), hanem azt a WinKey-t dolgozod fel egyből és adod át a függvénynek, amit a KeyDown esemény visszaad (e.KeyData).
Magyarán csinálsz egy olyan kontruktort is a GlobalHotKey osztálynak, ami a teljes (módosítókkal is ellátott KeyData értéket is fel tudja dolgozni).AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Bumbi0
csendes tag
válasz ArchElf #1097 üzenetére
Nem értem, hogy mi szükség van konstruktorra.
Ilyesmire gondoltál? Mert így ilyen hibaüzenete kapok:
Error 1 A local variable named 'ghk' is already defined in this scopeprivate void textBB_KeyDown(object sender, KeyEventArgs e)
{
char chrHotkey;
string strHotkey;strHotkey = e.KeyData.ToString();
chrHotkey = strHotkey[0];switch (chrHotkey)
{
case 'A':
GlobalHotKey ghk = new GlobalHotKey(Win32.KeyCodes.VK_A, false, false, false, false);
ghk.Hotkey += new VoidEventHandler(Hotkey);
break;case 'B':
GlobalHotKey ghk = new GlobalHotKey(Win32.KeyCodes.VK_B, false, false, false, false);
ghk.Hotkey += new VoidEventHandler(Hotkey);
break;default:
break;
}}
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Windows 11
- Intel Core i3 / i5 / i7 8xxx "Coffee Lake" és i5 / i7 / i9 9xxx “Coffee Lake Refresh” (LGA1151)
- Ubuntu Linux
- Peugeot, Citroën topik
- Autós topik
- Milyen program, ami...?
- Huawei Mate 40 Pro - a csúcson kell abbahagyni?
- Apple iPhone 11 - népalma
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Stellar Blade
- További aktív témák...
- T14s Gen3 27% 14" FHD+ IPS i7-1280P 32GB 512GB NVMe IR kam gar
- RAMSES GAMER PC // RYZEN7 2700X // 16GB DDR4 // 500GB SSD // POWERCOLOR RX6700XT 12GB HELLHOUND
- HYPER GAMING PC // RYZEN5 1600X // 16GB DDR4// SSD+HDD// ASUS ROG STRIX RX VEGA56 8GB(GTX 1080PoWeR)
- GAMER PC: i5-12400F/14600K -Új RTX 4060 Ti - Új 16/32GB DDR4 kit - M.2 NVMe SSD - GAR/SZÁMLA!!!
- Csere-Beszámítás! Gamer PC! I7 6700K / GTX 1070 8GB / 32GB DDR4 / 500GB SSD
- Makulátlan állapotú IPhone 14 128GB Starlight színben/Garanciás 2026.08.11-ig / Beszámítás van
- Apple Watch Series 6 40mm RoseGold Színben
- AMD FX-8800P integrált procis minigép.
- Eladó AMD Mini-ITX félkonfig(Asrock B450, AMD 3400G + gyári halk hűtő, 16GB Kingston)
- DELL OPTIPLEX7010 SFF/i5 3470/16GB DDR3/Intel HD Graphics/240GB SSD
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest