Új hozzászólás Aktív témák
-
x007
tag
válasz Briganti #1194 üzenetére
Itt az adapter használata egyébként teljesen fölösleges.
openConnection();
dbCommand = new OleDbCommand(qText, dbConnection);
dbCommand .ExecuteNonQuery();
closeConnection();Másrészt: Csináltam neked egy kis DataSet tutorial videót anno. Miért nem úgy használod? Nem is kéne SQL parancsokat írnod, mert képes arra, hogy a DataSeten végrehajtott módosításokat (hozzáadás, törlés, érték módosítás) automatikusan végrehajtsa az adatbázisban. Nem teljesítménykritikus alkalmazásnál szerintem mindenképpen érdemes lenne használni.
[ Szerkesztve ]
-
Briganti
tag
jajjj tenyleg, a multkor lementettem a videot, es elfelejtettem megnezni pedig mennyi munkat megsporolt volna, de mostmar megvan, es igy utolag is NAGYON SZEPEN KOSZI!!
kb 1 heti munkamat csinaltad meg 5 percbe, de aztmondjak aki hulye fizessen is meg erte
If debugging is a process of removing bug, then programming is a process of putting them in ...
-
FehérHolló
veterán
Létezik valami .NET által támogatott mód XML formátumú adatbázisban SQL alapú lekérdezésre. (LINQ-s lekérdezés működik.)
Esetleg valami .NET-es támogatás SQL lekérdezés -> LINQ lekérdezés konverzióra? (Forditott irányról tudok.)Ha mondotok valami osztálynevet, azzal már ki vagyok segitve, nem vágyom teljes programrészletekre.
Skynet is real. It's called Google.
-
x007
tag
válasz FehérHolló #1203 üzenetére
Pongyolán megfogalmazva: Az XML egy hierarchikus adatbázis, az SQL pedig relációs adatbázisokhoz van. Innentől nincsen értelme a kérdésnek . XPath segítségével lehet lekérdezéseket definiálni XML-hez.
http://en.wikipedia.org/wiki/XPath_1.0
A másik problémádra szerintem biztos, hogy nincsen beépített .NET osztály. Egy ilyet találtam viszont:
Nem próbáltam ki, de van egy olyan érzésem, hogy több bajod lesz vele, mintha magadtól írnád át a lekérdezéseket .
-
FehérHolló
veterán
Azóta megoldottam a problémát.
XPath a sémára épül, ami nálam szükségtelenül elbonyolította volna a helyzetet, ugyanis a lekérdezés eredményét egy C# program dolgozza (majd) fel. XML-es LINQ ([link]) tökéletesen megfelelt a célnak. Egyébként ha az SQL alapú adatbázisokat kiterjesztjük úgy, hogy táblában lehet tábla is, akkor már elég értelmes dolog SQL (alakú) lekérdezésről beszélni XML adatbázisoknál is. Véges mennyiségű munkával létre lehet hozni olyan kódrészt, ami az alap "select xy from Z where kifejezés order by szabály" alakú SQL lekérdezést átfordítja XML-es LINQ-re. Az eredmény persze egy XML fa lesz. Hasonló analógiára meg lehet oldani a törlést és a változtatást is.
Az eredeti kérdésem arra irányult, hogy létezik-e ez már .NET keretrendszerben megírva, mert akkor nem kellett volna nekem összegányolnom.Az SQL to LINQ-et pedig nem használhatom.
Skynet is real. It's called Google.
-
FehérHolló
veterán
válasz FehérHolló #1205 üzenetére
Ami így visszaolvasva biztos, hogy nem egyértelmű: Nem egy sima XML dokumentumról beszélek, hanem egy olyan XML alapú adatbázisról, mely egy csomó egyéb formai és tartalmi megkötésnek is eleget tesz.
Mindenesetre megoldottam azt a két dolgot, amiért alapban ideírtam, szóval ezek után már mindegy.Nem beszélhetek sajnos konkrétumokban.
[ Szerkesztve ]
Skynet is real. It's called Google.
-
Vasinger!
nagyúr
Kérnék egy kis segítséget. Írnék egy programot, ami azt csinálja, hogy: Beírok egy nevet kis betűvel, aztán entert nyomva a nevet nagy betűvel írja ki, de csak az első karakter legyen a nagy. Ezt, hogyan lehetne megcsinálni?
Én eddig jutottam: (nem kinevetni)Console.WriteLine("Kérem a neved!");
string s = Console.ReadLine();
int i= s.IndexOf ("0,1");
String s2 = s.ToUpper();
Console.WriteLine("Szia " + s2 + "!");Esetleg, ha azt is leírnátok, hogy mit rontottam el, vagyis, hogy miért azt kéne megköszönném.
[ Szerkesztve ]
-
bpx
őstag
válasz Vasinger! #1207 üzenetére
i változó totál felesleges, nem is használja semmi, és ebben a formában az IndexOf a "0,1" string-et keresi, aminek hát semmi értelme...
string s2 = s[0].ToString().ToUpper() + s.Substring(1);
veszi az első karaktert amit nagybetűsre cserél, majd a maradékot érintetlenül
-
Bumbi0
csendes tag
Hogyan tudom megincsálni, hogy amelyik ablak fölé viszem az egeret, annak a széleit körbe rajzolja egy vonallal.
Ilyenkor nem az ablak belsejére a gondolok, hanem a bordáira a device context-re. Egy olyan megoldásra lenne szükségem, ami működik Win 7 alatt is.
Eddig egy ilyenem van, de valamiért nem akar működni Win 7 alatt, viszont XP alatt meg igen.IntPtr hwnd = GetWindowUnderCursor();
IntPtr hDC = Win32Api.GetWindowDC(hwnd);
Win32Api.Rect rc = new Win32Api.Rect();
Win32Api.GetWindowRect(hwnd, ref rc);
using (Pen pen = new Pen(Color.Red, 3))
{
using (Graphics g = Graphics.FromHdc(hDC))
{
g.DrawRectangle(pen, 0, 0, rc.Width, rc.Height); //g.DrawRectangle(pen, 9, 30, rc2.Width - 19, rc2.Height - 40);
}
}
//Win32Api.ReleaseDC(hwnd, hDC);Ahogy látszik próbáltam, nem a device contextre rajzolni, hanem a client arenába ezért beljebb vettem az értékeket és oda simán bele rajzol. Viszont ha a device contextre, akarom, hogy rajzolja ki a vonalakat, akkor nem hajlandó megcsinálni, minhta alá rajzol vagy rá se rajzolná nem tudom.
Próbáltam RelesaeDC-vel és nélkül is, de egyik se segített.
Nagyon örülnék egy kis segítségnek mert nem igazán tudok tovább jutni és fontos lenne!
Előre is köszönöm szépen!
-
Bumbi0
csendes tag
Ha bepipálom a compatibilitynál, hogy "Disable Desktop Composition", akkor megcsinálja, tehát körbe rajzolja az egész ablakot!
Hogy tudom megoldani, hogy ne kelljen Leállítani a Desktop Composition-t?
-
Bumbi0
csendes tag
DwmSetWindowAttribute a megoldás, ennek a beálltásában tud valaki segiteni?
-
Moneo
tag
Sziasztok!
Egy igen kezdő kérdéssel fordulnék hozzátok.
Vkit kérek világítson rá az abstract osztályok potenciáljáraKezdő szinten nem fogom h miért jó hogy létrehozok egy "fantom" osztályt, amiből származtatok... amit így elérek nem pont ugyan így megtehetnem ha az alap osztályban hoznám létre a később overriedolt metodusokat?
Tudom h ez így nem igaz [ha így lenne nyilván nem találták volna ki az abstract osztályt ] , és nyilván én nem látom a fától a mókust, de ezért kérek egy lámpa kapcsolást
Köszönöm. -
ArchElf
addikt
Ilyenekkel akkor érdemes "vacakolni" ha valamit nem egyszer szeretnél/kell megcsinálni, hanem az adott dolgot többféleképp is lehet (kell) implementálni, de szeretnéd egyszerűen és szabványosan kezelni őket.
Erre példa a System.IO.Stream osztály. Sok implementációja létezik, de az alapvető funkciókat mindegyik leszármazottnak (így vagy úgy) meg kell valósítania.A kezelésnél tehát nem azt fogod előírni, hogy a függvényeknek a bemenete, vagy kimenete az adott leszármazott osztály, hanem az ős (fantom) osztály.
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]
-
ArchElf
addikt
válasz Vasinger! #1215 üzenetére
Milyen könyved van? A ToString() fv az Object-től van örökölve, minden osztálynak van ilyen függvénye (implementáció függó, mit csinál).
A másik amit kérdeztél az s[0].
A string objektum értelmezhető (alapértelmezetten konvertálható) char[] -ként is,
tehát az s[0] az s string első karaktere char-ként. Zért kell a ToString(), mert a char és string objektumok konvertió nélkül nem fűzhetők össze. A char.ToString() string-é alakítja char-t.
Remélem elég érthető voltam...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]
-
-
Vasinger!
nagyúr
Köszönöm a segítséget mindkettőtöknek, sajna van amit nem értek, nagyjából átjött.
-
Moneo
tag
polimorfizmust vki ide írná saját szavaival?
-
sunsaw
tag
Sziasztok!
Nekiálltam szoftvert fejleszteni (de tanuló cipoben járok még), a segítségetek szeretném kérni!
Arról van szó, hogy csináltam egy ablakot, amiben a paraméterek megadása után nekiáll a program egy SQL kapcsolatot ellenorizni... Ehhez irtam egy disableControls() metodust, ami leutanozza az SQL Management Studio kapcsolodasi ablakat. Azonban, hiaba teszem a disableControls metodust (leszurkiti a lapon talalhato gombokat es controlokat a kapcsolodas tesztje alatt) a testConnection() metodus ele (ezen utobbi raprobal a DB-re, bool=lal ter vissza: true ha siker, false ha nem), a gombok es textbox-ok csak akkor lesznek hajlandoak elszurkulni, ha mar megvan a testConnecion metodus viszateresi erteke, es nem ertem, hogy miert. Probalkoztam a controlokat tartalmazo grid-en frissitest lekerni, de akkor is ez volt. Ugyanigy, a StatusBar-on sem jelentkezik a "Testing connection" felirat, valamiert nem tortenik meg a controlok update-je a kapcsolat felepitese elott. Hasonlo modon a Connect gombom is csunyan "lefagy" (benyomva marad, mint egy beragadt billentyu) amig az SQL szerver nem ter visza vmi ertekkel. A kritikus kod pedig:
private void ConnectButton_Click(object sender, RoutedEventArgs e)
{
connectStatusBar.Items[0] = "Testing connection...";
DisableControls();
if(TestConnection(serverNameComboBox.Text, databaseNameComboBox.Text, loginTextBox.Text, passwordBox.Password))
{
connectStatusBar.Items[0] = "Connecting...";
// TODO: implementation
}
else
{
connectStatusBar.Items[0] = "Connection failed.";
EnableControls();
}
}Otlet?
[ Szerkesztve ]
Windows Phone 7 Developer
-
Lortech
addikt
a gombok es textbox-ok csak akkor lesznek hajlandoak elszurkulni, ha mar megvan a testConnecion metodus viszateresi erteke
Miből jött le, hogy már megvan adott pillanatban a testConnection visszatérési értéke, hogy lehet meg a visszatérési értéke, ha elvileg meg sem hívtad?
Ránézésre szerintem nem a bemásolt kódban keresendő a megoldás, hanem valami olyan kódról, amiről nem tudod, hogy hamarabb fut le, mint gondolnád, pl. static vagy konstruktorok, vagy el elfelejtett metódus hívás. testConnection-re mehetne egy method breakpoint és hívási fát meg kéne nézni.Thank you to god for making me an atheist
-
Lortech
addikt
Még egyszer elolvasva úgy tűnik, hogy azt írod, amit szemmel tapasztaltál, nem pedig ami ténylegesen a kódban történik, szóval az lehet inkább, hogy a controlodnak még nem voltl ideje frissülnie, mikor már meghívtad a blokkoló db queryt. A disablecontrols után hívhatnál a controlra egy Update-et, hogy igazold ezt. Ha megtörténik a GUI-n a változás, akkor ez a gond, és külön threadben kéne kezelni a gui-t és az adatbázis lekéréseket.
Thank you to god for making me an atheist
-
x007
tag
A problémádat megoldja, hogyha a DisableControls() után meghívod a Application.DoEvents() metódust. Az ilyen megoldásokat azonban, ha lehet, kerüljük. Általánosságban elmondható, hogy időigényes feladatokat nem hajtunk végre a GUI szálon (ilyen egy vezérlő eseménye is, pl: Click), hanem egy új szálat hozunk létre, hogy a végrehajtás a háttérben történjen. Ezt könnyen megteheted a BackgroundWorker komponens segítségével, elég sok problémát levesz a programozó válláról.
Valami ilyet kéne csinálnod:
private void button1_Click(object sender, EventArgs e)
{
DbDetails arg =
new DbDetails
{
Server = ...,
Database = ...,
User = ...,
Password = ...,
};
connectStatusBar.Items[0] = "Testing connection...";
DisableControls();
backgroundWorker1.RunWorkerAsync(arg);
}
private class DbDetails
{
public string Server { set; get; }
public string Database { set; get; }
public string User { set; get; }
public string Password { set; get; }
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
DbDetails arg = e.Argument as DbDetails;
e.Result = TestConnection(arg.Server, arg.Database, arg.User, arg.Password);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null && (bool)e.Result)
{
//Sikerult csatlakozni
//TODO: Impl
}
else
{
//Nem sikerult csatlakozni
//TODO: Impl
}
}A DoWork eseménykezelőbe kell helyezned a kódot, amit a háttérben szeretnél végrehajtani. Fontos, hogy ebben nem hivatkozhatsz a Form-on található vezérlőkre szinkronizációs problémák miatt. Ezért van szükség jelen példában a DbDetails segédosztályra.
A RunWorkerCompleted eseménykezelő a feladat végrehajtása után mindig végrehajtódik. Ha valamilyen kivétel keletkezett, akkor azt a e.Error tulajdonságból kiolvashatod. Az e.Result tulajdonságból a DoWork eseménykezelőben beállított visszatérési érték olvasható ki.
[ Szerkesztve ]
-
sunsaw
tag
Kiprobaltam, amit mondtatok. Nos, oda jutottam, hogy tettem egy breakpoint-ot még a testConnection metodus ele, es csodak csodja, az tortent, hogy nem tortent semmi! Amikor rakattinto a Connect gombra, hiaba all meg a breakpointon, nem fut le a DisableControls, illetve, lefut, de az ablak lefagy total, még mozgatni sem lehet, sot a controlok sem szurkulnek el. Megneztem a static dolgot, egy darab nincs benne, az egy szem konstruktoromban meg nincs ilyesmi. Bemasolom az egesz kodot, hatha vki okosabb lesz (egyebkent WPF-ben keszul a dolog, szoval adok XAML-t is):
using System;
using System.Windows;
using System.Data.SqlClient;
namespace SunSaw_Dictionary.Windows
{
/// <summary>
/// Interaction logic for ConnectDictionaryWindow.xaml
/// </summary>
public partial class ConnectDictionaryWindow
{
public ConnectDictionaryWindow()
{
InitializeComponent();
serverNameComboBox.Text = // ezt azert nem masolom be, itt van egy string
databaseNameComboBox.Text = // ezt azert nem masolom be, itt van egy string
loginTextBox.Text = // ezt azert nem masolom be, itt van egy string
passwordBox.Password = // ezt azert nem masolom be, itt van egy string
connectStatusBar.Items.Add("Ready.");
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
Close();
}
private void ConnectButton_Click(object sender, RoutedEventArgs e)
{
connectStatusBar.Items[0] = "Testing connection...";
DisableControls();
if(TestConnection(serverNameComboBox.Text, databaseNameComboBox.Text, loginTextBox.Text, passwordBox.Password))
{
connectStatusBar.Items[0] = "Connecting...";
// TODO: implementation
}
else
{
connectStatusBar.Items[0] = "Connection failed.";
EnableControls();
}
}
private void DisableControls()
{
serverNameComboBox.IsEnabled = false;
databaseNameComboBox.IsEnabled = false;
loginTextBox.IsEnabled = false;
passwordBox.IsEnabled = false;
}
private void EnableControls()
{
serverNameComboBox.IsEnabled = true;
databaseNameComboBox.IsEnabled = true;
loginTextBox.IsEnabled = true;
passwordBox.IsEnabled = true;
}
private static bool TestConnection(string serverName, string databaseName, string login, string password )
{
bool retVal = true;
var sqlConn = new SqlConnection
{
ConnectionString =
"Data Source=tcp:" + serverName + ";Initial Catalog=" + databaseName +
";User ID=" + login + ";Password=" + password + ";"
};
try
{
sqlConn.Open();
}
catch (Exception)
{
// TODO: exceptions?
retVal = false;
}
finally
{
sqlConn.Close();
}
return retVal;
}
}
}es a XAML:
<Window x:Class="SunSaw_Dictionary.Windows.ConnectDictionaryWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Connect" Width="400" Height="269" ResizeMode="NoResize">
<Grid Name="LayoutRoot" Background="#FFF0F0F0">
<TextBlock HorizontalAlignment="Left" Margin="12,12,0,0" Name="serverNameTextBlock" Text="Server name:" Height="23" VerticalAlignment="Top" />
<ComboBox Height="23" Margin="123,12,12,0" Name="serverNameComboBox" VerticalAlignment="Top" IsEditable="True" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="12,41,0,0" Name="databaseNameTextBlock" Text="Database name:" VerticalAlignment="Top" />
<ComboBox Height="23" IsEditable="True" Margin="123,41,12,0" Name="databaseNameComboBox" VerticalAlignment="Top" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="41,70,0,0" Name="loginTextBlock" Text="Login:" VerticalAlignment="Top" />
<ComboBox Height="23" Margin="146,70,12,0" Name="loginTextBox" VerticalAlignment="Top" IsEditable="True" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="38,99,0,0" Name="passwordTextBlock" Text="Password:" VerticalAlignment="Top" />
<PasswordBox Height="23" Margin="146,99,12,0" Name="passwordBox" VerticalAlignment="Top" PasswordChar="●" /> <Border BorderBrush="DarkGray" BorderThickness="1" Margin="12,0,12,61" Name="border1" Height="1" VerticalAlignment="Bottom" />
<Button Content="Connect" Margin="0,0,93,29" Name="connectButton" Click="ConnectButton_Click" Height="23" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />
<Button Content="Cancel" Margin="0,0,12,29" Name="cancelButton" Click="CancelButton_Click" Height="23" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />
<StatusBar Name="connectStatusBar" Height="23" VerticalAlignment="Bottom" Visibility="Visible" Background="{Binding ElementName=LayoutRoot, Path=Background.Color}" />
</Grid>
</Window>Remelem vki tud segiteni... termeszetesen a kodom kicsit sem biztonsagos, egyelore nem ezen van a hangsuly, de minden otletet szivesen varok, termeszetesen a szálas megoldást is merlegelni fogom,de ugy latszik mashol van a kutya elasva, csak en nem tudom hol...
[ Szerkesztve ]
Windows Phone 7 Developer
-
x007
tag
Jaaaa, WPF-ben nincsen gyári DoEvents, viszont van workaround:
private void button1_Click(object sender, RoutedEventArgs e)
{
button1.IsEnabled = false;
WpfApplication.DoEvents();
Thread.Sleep(3000);
button1.IsEnabled = true;
}
/// <summary>
/// Designates a Windows Presentation Foundation application model with added functionalities.
/// </summary>
public class WpfApplication : Application
{
private static DispatcherOperationCallback exitFrameCallback = new
DispatcherOperationCallback(ExitFrame);
/// <summary>
/// Processes all UI messages currently in the message queue.
/// </summary>
public static void DoEvents()
{
// Create new nested message pump.
DispatcherFrame nestedFrame = new DispatcherFrame();
// Dispatch a callback to the current message queue, when getting called,
// this callback will end the nested message loop.
// note that the priority of this callback should be lower than the that of UI event messages.
DispatcherOperation exitOperation = Dispatcher.CurrentDispatcher.BeginInvoke(
DispatcherPriority.Background, exitFrameCallback, nestedFrame);
// pump the nested message loop, the nested message loop will
// immediately process the messages left inside the message queue.
Dispatcher.PushFrame(nestedFrame);
// If the "exitFrame" callback doesn't get finished, Abort it.
if (exitOperation.Status != DispatcherOperationStatus.Completed)
{
exitOperation.Abort();
}
}
private static Object ExitFrame(Object state)
{
DispatcherFrame frame = state as DispatcherFrame;
// Exit the nested message loop.
frame.Continue = false;
return null;
}
}Megjegyzem, hogy ez továbbra se fogja teljes mértékig megoldani a problémát, mert az ablak ugyanúgy meg fog fagyni a DB kapcsolat tesztelésekor. (WinForms esetén is így lenne) Szóval mindenképpen javaslom a BackGroundWorker használatát.
-
x007
tag
Olvass dokumentációt...
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx -
x007
tag
-
sunsaw
tag
Kovetkezo kerdesem: Sikeresen letrehoztam az adatbazis kapcsolatot, bezartam a Connect ablakot egy Close()-sal A ConnectWindow kodjabol. (ahol a kapcsolodashoz szukseges parametereket fogadom). Ez utan hogy menjek tovabb? Megis hogy frissitsem a MainWindow-n levo adatokat? (Elmondom mit csinalok, angol magyar szotar program, de az adatbazis SQL szerveren lesz tarolva.)
Windows Phone 7 Developer
-
x007
tag
Linq to SQL
Entity FrameworkEzek nem alternatívái a DataSet-nek, mert kapcsolatalapú adatelérést biztosítanak ellentétben a DataSet-tel, ami kapcsolat nélküli adatelérést biztosít. Keress rá, hogy ezek mit jelentenek, nem akarok regélni .
Mérlegelni kell, hogy az alkalmazásodnak melyik jó. Én úgy gondolom, hogy egy szótár szoftvernek fölösleges betöltenie az összes szót a memóriába, így érdemes használni a fent említett két technológia közül az egyiket. Linq to SQL-t szoktam használni, de a jövő egyértelműen az Entity Framework (mondjuk jelen állapotáról nem sok jót hallottam eddig ).
-
x007
tag
Tanulmányozd a Binding objektumot... Nagyon sokmindent meg lehet vele csinálni.
http://www.c-sharpcorner.com/UploadFile/mahesh/WPFDataBinding08012008233147PM/WPFDataBinding.aspx -
Gregorius
őstag
A LINQ to SQL és az Entity Framework is ugyanúgy disconnected modellben dolgozik, mint a datasetes megközelítés. Maga az adatbázishoz kapcsolódás valóban kevésbé explicit, de architekturálisan ugyanaz a felállás: kliens kapcsolatot megnyitja, küldi a query szöveget, kapja az adatot, kapcsolatot lezárja.
A lényegi különbség ott van, hogy a kliensen hogy áll össze a command text illetve hogy a kapott adatból mi keletkezik.
Az EFv4 (végleges változat két hónap múlva) már kimondottan jól használható. -
x007
tag
válasz Gregorius #1242 üzenetére
DataSet használatakor az adatbázist cacheljük a memóriába, a lekérdezések a memóriában hajtódnak végre. EF és L2S használata esetén a lekérdezések mindig az adatbázis szerveren hajtódnak végre, ezért én nem sorolnám ezeket a kapcsolat nélküli adateléréshez. (sztem valahol a kettő között van ) Az adatmanipuláció mechanizmusa viszont valóban hasonló.
-
sunsaw
tag
Van egy About Window-om. Ezt szepen megnyitom showdialog-gal, elrejtem talcarol, hogy ne ketto latszon. Eddig szuper. A Baj akkor kezdodik, ha valaki ALT+TAB-bal valt alkalmazasok kozott, mert elofordulhat, hogy ravalt a MainWindow-ra, es azt hiszi kifagyott, ha nem veszi eszre hogy az About nyitva van (az atlaguser kepes erre). Ezt hogy szokás csinálni szépen, egyszeruen és elegánsan (lehet hogy tokmashogy)? (WPF, C#)
Windows Phone 7 Developer
-
sunsaw
tag
válasz ArchElf #1245 üzenetére
Koszi. Megneztem, belekotortam forrásba is, és teljesen úgy csinálják, ahogy én. Rendes uj ablak, ShowInTaskbar false, ShowDialoggal megnyitni. De viszont nekik nem jelenik meg dupla az ALT-TAB-ra... nem tudom, miert van ez igy, amugy konvertalni kellett a projektet, mert en VS2010-et hasznalok, ez szamithat valamit? Megnézné nekem valaki, hogy melyik az a kulcspont, ami miatt nekem dupla ablak van a taszkváltásnál, nekik meg csak egy? Nincs otletem sem, olyan tul egyszeru a kod, hogy nem talalom a lenyeget meg sajnos, lehet, hogy nem jo pontra koncentralok es elkeruli valami a figyelmem
Sot, meg jobbat mondok, ezt csinalom: elinditom a programot, megnyitom a dialogus ablakot, ALT-TAB-nal csak a dialogusablak latszik. Ha elvaltok rola, majd vissza ALT-TAB-bal, akkor csak a dialogusablak jelenik meg, a foablak nem. Ha azt csinalom, hogy elinditom, megnyitom a dialogusablakot, es elvaltok, majd talcan kattintok a feladatra, akkor a foablak jon be, es nem a dialogusablak (szimulalt lefagyas, ami nem jo!). Mit kene tenni?
[ Szerkesztve ]
Windows Phone 7 Developer
-
ArchElf
addikt
Ez valami desktop bug lehet. Próbáld ki, hogy először mindent eltüntetsz a ShowDesktop tálca menüvel, és utána az ALT+TAB vagy a tálcaikonra kattintással az ablak megnyitást.
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]
-
Gregorius
őstag
EF és L2S használata esetén a lekérdezések mindig az adatbázis szerveren hajtódnak végre
A lekérdezés ott hajtódik végre, ahol én mondom neki. Ugyanúgy, ahogy a TableAdapternél is megmondom, hogy milyen lekérdezést futtasson a szerveren, aztán a helyi adatokat tologatom. Aztán ha valaki beleesik abba a hibába, hogy a lekérdezést és nem a lekérdezés eredményét köti hozzá az objektumaihoz, magára vessen. Olyasfajta dedikált repository, mint a tableadaptehez a dataset, ami tárolja az eredményt valóban nincs EF és L2S alatt, helyette bármilyen beépített vagy saját gyártású listába beleküldheted az eredményt. -
sunsaw
tag
válasz ArchElf #1247 üzenetére
Kiprobaltam. Alkalmazas indit, majd ShowDesktop menu. Ha rakattintok az ikonra a talcan, akkor a foablak jelenik meg (hibasan, mert a megnyitott dialogusablaknak kellene), es ha ezutan koztvetlenul AL+TAB-olok, akkor ott meg a dialogusablak van kirakva kiskepnek es az is jon be. Nem ertem en ezt NEm hiszem, hogy desktop bug, mert az MS-nek mukodik, de egyszeruen nem latom, mi az, ami nalam hianyzik, lehet vmi titkos hidden focus event?
Windows Phone 7 Developer
-
ArchElf
addikt
Na, megvan a fórum.
Nem hiszem, hogy a te programodban lenne a hiba... Láttam ezt már más alkalmazásnál is (pl ImgBurn). De megnézem mindjárt nálam is egy gyors mintaprojekttel (VS.NET 2008)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]
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!