- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen okostelefont vegyek?
- Honor 400 Pro - gép a képben
- Nem várt platformon a OnePlus Nord 5
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- One mobilszolgáltatások
- Milyen GPS-t vegyek?
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Honor 200 Pro - mobilportré
Új hozzászólás Aktív témák
-
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;
}}
-
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
-
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
-
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
Hello! Valakinek nincs olyan programja, amely c# ban forgatható kockát rajzol? Nagyon megköszönném
-
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
-
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
-
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) -
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.
-
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) ..
-
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.
-
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.
-
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.
-
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 -
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. -
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 -
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) -
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
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...
-
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. -
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; }
}
} -
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 -
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
-
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
-
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
-
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
-
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?
-
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());
} -
RexpecT
addikt
Sziasztok!
Egy kis help kellene:
Írnom kellene egy olyan programot ami:
kiírja az első n darab páros szám (ezt a felhasználótól kérje be) összegét a képernyőre, majd meghatározza a számok átlagát. -
Immy
őstag
Úgynézki megvan a megoldás, igaz kicsit favágó módszer, de legalább működik:
if (webBrowser1.Document != null)
{
HtmlElementCollection elemColl = null;
HtmlDocument doc = webBrowser1.Document;
if (doc != null)
{
elemColl = doc.GetElementsByTagName("a");
foreach (HtmlElement elem in elemColl)
{
elemName = elem.GetAttribute("href");
if (elemName.Contains("dorf1.php?"))
{
listBox1.Items.Add(elemName);
break;
}
}
}
}
webBrowser1.Navigate(elemName); -
ArchElf
addikt
És ha az előző és az azelötti hozzászólásomat összekombinálod?
Értsd:
1) kikeresed az összes "A" elemet: GetElementsByTagName("A");
2) addig nézed őket, míg meg nem találod, amelyiknek a class property-je az amire te keresel GetProperty("class")
3) megnézed, hogy mi a href tulajdonsága GetProperty("href")
4) átadod a HREF értékét a webbrowser controllnak - voila...AE
-
Immy
őstag
válasz
ArchElf #1041 üzenetére
<a class="build" href="dorf1.php?a=4&c=70c">
Ebből akarom kiszedni a linket. (href utáni részt).
A Te általad berakott programkódod üres stringet szed ki semmit. Próbálgattam módosítani, de max annyit tudtam elérni, hogy "gyűjtemény" szöveget irattam ki.Más:
Hogyan lehet késleltetést berakni 2 webbrowser navigate közé?
thread.sleep-el akartam, de az nem működött jól (szerintem a webbrowser más szálon fut). -
ArchElf
addikt
http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.aspx
GetElementsByTagName, ha megvan a lista, onnan leelenőrzöd a class-t egy iterációban.if (webBrowser1.Document != null)
{
HtmlElementCollection elemColl = null;
HtmlDocument doc = webBrowser1.Document;
if (doc != null)
{
elemColl = doc.GetElementsByTagName("A");
foreach (HtmlElement elem in elemColl)
{
string elemName;
elemName = elem.GetAttribute("CLASS");
if (elemName == "valami")
{
elem.Focus();
break;
}
}
}AE
-
Immy
őstag
Üdv megint
(bocsi, hogy állandóan csak én postolok ide, de mindig elakadok valami kis hülyeségben)
C# webbrowser komponensel hogy tudok egy bizonyos linkre ugrani amiről csak ezt tudom:
class=build(id nincs, href-re nem hivatkozhatok közvetlenül, mert állandóan változik)
-
Immy
őstag
Nagyon sok "szórakozás" után megtaláltam a megoldást:
HtmlElement name = webBrowser1.Document.All["neve az input-nak"];
if (name != null)
{
name.InnerText = "amivel kiakarjuk tölteni";
}
HtmlElement pass = webBrowser1.Document.All["neve az input-nak"];
if (pass != null)
{
pass.InnerText = "amivel kiakarjuk tölteni";
} -
Immy
őstag
Üdv
Megint elakadtam:
Van 2 input mező amit ki kell töltenem:<input class="text" type="text" name="e31a9a9" value="ide írom a nevet" maxlength="15" />
<input class="text" type="password" name="e9f746c" value="*****" maxlength="20" />viszont webbrowser komponensel még nem jöttem rá hogy lehetséges id nélkül
-
Immy
őstag
Üdv
Azt megtaláltam, hogy linkre hogyan lehet ugrani vagy id-re. (működik is)
object dom = webBrowser1.Document.All["submit"].DomElement;
Type t = dom.GetType();
System.Reflection.MethodInfo click = t.GetMethod("Click");webBrowser1.Document.GetElementById("submit").InvokeMember("Click");
Viszont nálam a link állandóan változik....
Üdv: Immy
-
hattrick
tag
Sziasztok!
Kezdő c# programozó vagyok. Ez az első programozási nyelvem, és szívesen vásárolnék egy könyvet amiből tanulhatnék, csak nem tudom melyiket, ebben is kérném a segítségeteket.
Egy olyan könyvre lennem szükségem ami mindenre megtanít. Nem szükséges, hogy nagyon az alapoktól kezdje, mert ha segítség kell akkor van programozó a családban.
Én erre a könyvre gondoltam: A C# 2008 ÉS A .NET 3.5 - 1. KÖTET
A C# 2008 ÉS A .NET 3.5 - 2. KÖTET
Ha szerintetek másik könyv lenne a nyerő akkor szívesen fogadom a tanácsokat.Előre is köszi a segítséget.
ht -
Immy
őstag
Üdv
Csináltam egy form alkalmazást. Raktam rá egy webbrowser-t. Paraméterezni tudom a navigate paranccsal, viszont bekellet látnom, hogy az én tudásom ide kevés!
Azt akarom megvalósítani, hogy mikor bejön 1 weboldal ugorjon (kattintson) 1 bizonyos linkre. (a link vége mindig változik-->ergo közvetlen linkként nem ugorhatok rá.
http://xxxxxx.hu/dorf1.php?a=9&c=58c
(tehát itt az 58c mindig változik amennyiszer belépek)Forráskód
<a class="build" href="dorf1.php?a=10&c=58c">Lecseréltem a szöveget</a>Nincs lehetőség, hogy egy bizonyos szövegre ugorjak rá, vagy addig "taboljak" míg meg nem találja a szöveget?
Előre is köszönöm megtisztelő válaszotokat!
Üdv: Immy
-
bpx
őstag
osztályokhoz olvasd el ezt: [link]
feladathoz:
class SzovegKezelo
{
string szoveg;
int hossz;
public SzovegKezelo()
{
szoveg = "Hello";
hossz = szoveg.Length;
}
public int SzovegHossz()
{
return hossz;
}
}
class Program
{
static void Main(string[] args)
{
SzovegKezelo szk = new SzovegKezelo();
Console.WriteLine(szk.SzovegHossz());
}
} -
punk17
aktív tag
Sziasztok!
Egy kis segítségre lenne szükségem mert nem egészen értem az osztályokat, metódusokat. Valaki röviden leírhatná, hogy mire jó és mi az értelme mert nem tudom felfogni és jövőhéten kedden zhm lesz belőle.Esetleg ezt a feladatot megoldhatná nekem valaki.
1. feladat- Hozz létre egy SzövegKezelő osztályt, amelynek két adattagja van: egy szöveg és egy hossz.
- Készítsd el az osztályhoz tartozó konstruktort, amely szöveg mezőnek ad kezdő értéket.
- Készíts egy SzövegHossz metódust, amely a szöveg mező hosszát adja vissza.
- A Main fgv-en belül példányosítsd a fenti osztályt. Majd kérd le a SzövegHossz függvénnyel, a szöveg változó méretét, és ezt irasd ki a képernyőre.Előre is köszönöm a segítséget.
-
ArchElf
addikt
Amennyiben a t1.eleres és t2.helye mező azonos adatait akarnád kiszűrni:
select * from t1 where eleres not in (select helye from t2)
Esetleg használhatsz joint is, de az egy kicsit bonyolultabb:
SELECT t1.*
FROM t1 LEFT JOIN t2 ON t1.eleres = t2.helye
WHERE t2.helye Is Null;AE
-
wwlaci
csendes tag
Sziasztok!
Egy kis segítség kellene.van két táblám egy access adatbázisban.
Az egyik tábla (t1) tartalmazza az összes adatot ( mezőnév: elérés)
a másik tábla (t2) ( más mezőnéven: helye) tartalmaz néhány olyan adatot is, amelyet
a másik tábla (t1) elérés mezője..
Nekem egy olyan kigyűjtés kell (visual st2005) amely csak azokat az adatokat jeleníti meg
az első (t1) táblából, amelyek NEM SZEREPELNEK a t2 táblában.próbáltam az inner join -t de nem volt nyerő
nyit.CommandText = "select distinct osszes.eleres, helye from fotabla inner join osszes on(osszes.eleres not like fotabla.helye )"
ha valaki tudna segíteni, előre is köszi..
-
wwlaci
csendes tag
válasz
Gregorius #1020 üzenetére
Szia.
az alábbi kódot bemásoltam egy modulba:
Public Sub FindFiles(ByVal path As String, ByVal pattern As String, ByVal result As Collection(Of String))
Try
For Each s As String In System.IO.Directory.GetDirectories(path, pattern)
FindFiles(s, pattern, result)
Next
For Each s As String In System.IO.Directory.GetFiles(path, pattern)
result.Add(s)
Next
Catch ex As UnauthorizedAccessException
End Try
End SubAz alábbit, pedig egy button-click-be
Dim res As New Collection()
FindFiles("C:\", "*.avi", res)
For Each s As String In res
ListBox1.Items.Add(s)
Nexta modulban lévő (of string)-re azt mondja:
Microsoft.VisualBasic.Collection has no type parameters and so cannot have type arguments. -
Gregorius
őstag
Ez már végigmegy hiba nélkül:
Public Sub FindFiles(path As String, pattern As String, result As Collection(Of String))
Try
For Each s As String In Directory.GetDirectories(path, pattern)
FindFiles(s, pattern, result)
Next
For Each s As String In Directory.GetFiles(path, pattern)
result.Add(s)
Next
Catch ex As UnauthorizedException
End Try
End Sub
Dim res As New Collection(Of String)
FindFiles("C:\", "*.avi", res)
For Each s As String In res
listBox1.Items.Add(s)
Next2. Csak arra hívod meg a fentit, amelyikre kell.
-
wwlaci
csendes tag
válasz
Gregorius #1018 üzenetére
Szia!
megpróbáltam az alábbit:
For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
My.Computer.FileSystem.Drives.Item(1).ToString, _
FileIO.SearchOption.SearchAllSubDirectories, "*.avi")
ListBox1.Items.Add(foundFile)
Nextaz a gond csak vele , hogy a minden meghajtón jelenlévő
System Volume Information
könyvtárnál kiakad, mert ezt nem tudja megnyitni.Ha a My.Computer.FileSystem.Drives.Item(1).ToString, helyett
egy deklarált könyvtárat pl.: "h:\filmek" írok be, akkor azt
nagyon szépen végigolvassa.
2. kérdés
Hogyan tudok kizárni meghajtót , pl a "c:" -t, vagy könyvtárakat (pl.: Windows),
hogy azokat ne olvassa be.előre is köszi.
-
wwlaci
csendes tag
válasz
Gregorius #1014 üzenetére
Szia!
találtam egy ilyen megoldást, de nem tudom, hogyan tudom
megjeleníteni ennek az eredményét listboxban.Imports System.Collections
Imports System.IO
Imports System
Public Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End SubPrivate Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
End Sub
End ClassPublic NotInheritable Class Directory
Public Class RecursiveFileProcessorPublic Overloads Shared Sub Main(ByVal args() As String)
Dim path As String
For Each path In args
If File.Exists(path) Then
' This path is a file.
ProcessFile(path)
Else
If System.IO.Directory.Exists(path) Then
' This path is a directory.
ProcessDirectory(path)
Else
Console.WriteLine("{0} is not a valid file or directory.", path)
End If
End If
Next path
End Sub 'Main' Process all files in the directory passed in, recurse on any directories
' that are found, and process the files they contain.
Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
Dim fileEntries As String() = System.IO.Directory.GetFiles(targetDirectory)
' Process the list of files found in the directory.
Dim fileName As String
For Each fileName In fileEntries
ProcessFile(fileName)Next fileName
Dim subdirectoryEntries As String() = System.IO.Directory.GetDirectories(targetDirectory)
' Recurse into subdirectories of this directory.
Dim subdirectory As String
For Each subdirectory In subdirectoryEntries
ProcessDirectory(subdirectory)
Next subdirectoryEnd Sub 'ProcessDirectory
' Insert logic for processing found files here.
Public Shared Sub ProcessFile(ByVal path As String)
Console.WriteLine("Processed file '{0}'.", path)
End Sub 'ProcessFile
End Class 'RecursiveFileProcessor
End Class -
-
wwlaci
csendes tag
Sziasztok!
Visuál Studió 2005 Visuál Basic-ben utazok.
Kérdésem, ha valaki tudna segíteni.
Arra volna szükségem, hogy az általam megadott (többféle, pl. .avi .jpg .bmp ) kiterjesztésű összes filet
egy gombnyomásra egy listára (listbox) gyűjtseElőre köszi a segítéget.
-
Lortech
addikt
válasz
acélkemény #1009 üzenetére
Nem System.Int32 osztályokra alias, hanem System.Int32 típusra, érték típusra. És azért érték típus mert nem osztályként van megvalósítva, nem gyermeke objectnek, nem kompatibilis vele. Érték típusokat a struct -tal lehet létrehozni.
Paraméterátadásra visszatérve: nem akartam tovább bonyolítani Lakersnek, de van még a ref kulcsszó is, ami referencia típusú paraméterátadást eredményez érték típus paraméteren is. Azaz kimenő paramétert is lehet alkalmazni .NET-ben. És itt megjegyezném, mielőtt valaki beleköt, hogy a referencia típusú atadás is érték típusú, a referencia típusú változók értéke egy referencia, ez a referencia viszont egy mögöttes tartalomra mutat, egy objektumra (vagy null).
-
acélkemény
csendes tag
válasz
Lortech #1003 üzenetére
Nekem ezeknél a példáknál az a bajom, hogy fingom sincs, egyatalan miert lehetseges ez, hogy van ertek meg referencia szerinti atadas, mikozben mindenki tudja, hogy az int, bool stb csak alias-ok egy valojaban System.Int32, System.Boolean stb osztalyokra. Tehat akkor most ertek vagy referencia? Tok kavarc. Tudom, hogy mi a kulonbseg, egyertelmu, csak azt nem, hogy ha minden osztaly meg objektum, még az egyszeru tipusok is, akkor hogy a francba van value átadás és akkor még a boxing-unboxing csodáról meg sem emlékeztem... egyszer erre ferdítenek, egyszer arra, aztán te meg találd ki, hogy mi az igaz!
-
Lakers
tag
válasz
Lortech #1005 üzenetére
Az, hogy példányszintű, azt jelenti, hogy az objektum egy példányához tartozik,
Most elgondolkodtam, én úgy vettem le ebből az OO-ból, hogy az objektum és a példány ugyanaz. Osztálynak van objektuma, vagy másnéven példánya (lehet valami felett átsíklottam). Mi a különbség a példány és objektum között?
-
Lortech
addikt
Igen, "valahol" benne van a memóriában, valahogy úgy lehet elképzelni, mintha lokális változóként deklaráltad volna a függvényen belül, és a legelső mozzanat a függvényen belül az, hogy értékül adod neki azt az értéket ami a paraméter.
tehát vmi ilyesmi:public static void Value()
{
int param = 42;
...
}Mindez automatikusan történik. Value lefutása után param felszabadul. Kezdeni ne akarj vele semmit.
Az, hogy példányszintű, azt jelenti, hogy az objektum egy példányához tartozik, kell hozzá példány, hogy elérd a mezőt, minden példánynak van egy-egy ilyen mezője, nem osztályszintű (statikus). -
Lakers
tag
válasz
Lortech #1003 üzenetére
Köszi!
Igen, könyvből van
, a Value-t azért nem írtam, mert azt valahogy felfogtam.
De átfutottam ezen a paraméter másoláson. Az lenne a kérdésem, hogy amikor ilyenkor a Value metódus megkapott paramétert, ugye lemásolja, és azzal dolgozik, és az eredetit nem másolja (mert ugye itt az értéket kapja), de akkor a másolattal mi történik? az valahol benne a van memóriában? (erre nem tért ki a könyv), hogy akkor hol a másolat? és azzal később lehet valamit kezdeni?
az hogy a Number a WrappedInt egyetlen mezője ez oké, meg hogy publikus
, de az hogy példányszintű, az azt jelenti, hogy egyben ez az objektum "változója" (nem tudom, milyen szót kell ide használni).
-
Lortech
addikt
Ez itt valami példa lenne gondolom a referencia és az érték szerinti paraméterátadások ill. annak mellékhatásainak szemléltetésére.
Value metódus - érték szerinti-
Reference metódus - referencia szerinti paraméterátadás.Value metódusban a bemenő paraméter int típus, "érték típus", ha hivatkozol rá a változónévvel, akkor az értékre hivatkozol (nem referenciára).
Ha megváltoztatod a metóduson belül a "param" bemenő paramétert, nem változik meg a Value függvény hívása helyén megadott változó, mivel a metódus annak egy másolatát kapja meg valójában.(Value hívását nem másoltad be, de gondolom ott lehet a könyvben vmi ilyesmi példa is, hogy:
WrappedInt wi = new WrappedInt();
Console.WriteLine(wi.Number);
Pass.Value(wi.Number);
Console.WriteLine(wi.Number);)
A Reference metódus egy referencia típust vár bemenő paraméterként, a típus a WrappedInt. A példában a Reference metódus hívása helyén a WrappedInt osztály
"wi" nevű objektumpéldányát, ill. annak referenciáját adja át a metódusnak, tehát az eredetileg WrappedInt wi = new WrappedInt(); sorral példányosított objektumra képes hatni, ahogy teszi is az objektum "Number" mezőjének megváltoztatásával.Konkrétan a kérdésedre válaszolva:
1, mert a Reference fgv formális paraméterlistája a"WrappedInt param", tehát nem int típust vár a fgv, ha a Numbert adta volna át, azzal nem tudta volna szemléltetni a referencia szerinti paramátadást.
2, szóval param.Number = 42;
param a bemenő paraméter, típusa WrappedInt, ami egy osztály, referencia típus, tehát konkrétan param az ugyanaz az objektum, ill referenciája, mint amit a WrappedInt wi = new WrappedInt(); sorral példányosítottál.
A WrappedInt egyetlen mezője a Number, példányszintű és publikus, ezért hivatkozhatsz rá a példában megadott módon param.Number-ként. A mezőnek egyszerűen értéket adunk. -
Lakers
tag
sziasztok!
Ismét kód értelmezésben kérem a segítségeteket
ez a Pass osztály:using System;
namespace Parameters
{
class Pass
{
public static void Value(int param)
{
param = 42;
}
public static void Reference(WrappedInt param)
{
param.Number = 42;
}
}
}WrappedInt osztály:
namespace Parameters
{
class WrappedInt
{
public int Number;
}
}Ez pedig a Main metódus tartalma:
WrappedInt wi = new WrappedInt();
Console.WriteLine(wi.Number);
Pass.Reference(wi);
Console.WriteLine(wi.Number);itt a Reference függvény azt csinálja, hogy a WrappedInt osztályból meghívja a példányt, az a példány WrappedInt osztályban 0, és ugye a Reference metódus meghívás után a példány(Number) értéke 42 lesz.
Kérdésem:
1. public static void Reference(WrappedInt param) miért param van itt? és miért nem number? (mert az a Number az az osztály mezője?)
2. a Reference metódusban a param.Number=42 utasítás mit csinál? a Number 0 értékéhez hozzáadta a param 42 értéket? (lehet ennél a kérdésnél, még tovább kell lapoznom a könyvet -
acélkemény
csendes tag
Lehet nem itt kellene ezeket megkérdeznem, de itt számitok okos válaszokra:
1. mire jó egy domain pointer?
2. van egy mukodo asp.net-es domainem. vettem egy masodik domain nevet, de nem tudom hogy lehetne atiranyitani es nem is talaltam erre utalo jelet a webUI-n. mit kellene tennem?
Ú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!
- HP Elitebook 840 G3 laptop (14FHD/I5-G6/8GB/256SSD/Matricázott) - Akku X
- Asus Rog Strix Gamer laptop makulátlan állapotban
- ThinkPad T14 Gen4 14" FHD+ IPS érintő Ryzen 5 PRO 7540U 16GB 256GB NVMe ujjlolv IR kam gar
- 16GB-os SODIMM (notebook) DDR4 RAM bazár - nézz be, lesz, ami kell neked!
- HP 15-af105nh laptop (15,6FHD/AmdQuad/4GB/128SSD/Magyar) - Akku X
- iKing.Hu - Apple iPhone 14 Plus - Yellow - Használt, karcmentes
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- HATALMAS AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- BESZÁMÍTÁS! Asus B760M i7 12700KF 32GB DDR4 512GB SSD RX 6800 16GB Rampage SHIVA FSP 700W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged