Laden...

Forenbeiträge von MrMango Ingesamt 25 Beiträge

24.07.2015 - 16:37 Uhr

Das kommt mir irgendwie bekannt vor. Hatte vor langer Zeit mal etwas Ähnliches. Da fror allerdings sogar der Mauszeiger kurzzeitig ein. Da lag es am Grafiktreiber. Vielleicht kannst Du mal eine andere Version des Grafiktreibers ausprobieren. Ggf. eine ältere; neuer ist nicht immer besser...

Gruß
Mango

19.07.2013 - 16:16 Uhr

Wollte noch kurz meinen Senf dazugeben,

ListView ist klasse, ich liebe es. Und mit DGV stehe ich total auf Kriegsfuß, habe schlechte Erfahrungen damit gemacht.
ListView kann normalerweise keine Spalten unsichtbar machen, man muss sie tatsächlich entfernen, wenn es sauber sein soll. Das lässt sich aber alles ganz gut in einer Ableitung von ListView nachrüsten. Es gibt nur im Framework (zumindest in 2.0, bei höheren weiß ich es nicht) einen kleinen Bug: Wenn man einen ColumnHeader aus seinem ListView entfernt, wird dummerweise die Width zerstört (überschrieben). Wenn die für ein späteres Wiedereinblenden erhalten bleiben soll, muss man es einfach so machen:

int width = columnHeader.Width;
Columns.Remove(columnHeader);
columnHeader.Width = width;

Die von ListView abgeleitete Klasse sollte dann intern alle Columns speichern und (z.B. per Kontextmenü) welche ein- und ausblenden können.

Gruß
Mango

15.11.2012 - 13:38 Uhr

Welche Farbe hat denn der blinkende Textcursor (Caret)? Hat wohl was damit zu tun. Die ForeColor ist jedenfalls egal.

15.11.2012 - 13:22 Uhr

Vielleicht ist es ja was ganz Banales: Bist Du sicher, dass der Load-EventHandler aufgerufen wird? Womöglich ist die Event-Bindung im Konstruktor verloren gegangen. Hast Du schon mal einen Breakpoint in Form1_Load gesetzt?

Gruß
Mango

15.11.2012 - 13:05 Uhr

Also, bei mir ist der Cursor dann weiß. Hast Du auch im System unter "Eigenschaften von Maus" den Haken "Zulassen, dass Mauszeiger durch Designs geändert werden" drin?

Gruß
Mango

04.09.2012 - 16:29 Uhr

Danke bredator,

das war's.

Mango

04.09.2012 - 15:13 Uhr

Hallo zusammen,

wir haben in unserer (TFS-verwalteten) Projektmappe mehrere Projekte, unter anderem auch zwei Setup-Projekte. Startprojekt ist aber ein anderes.
Wenn ich auf dem Startprojekt "Debuggen / Neue Instanz starten" mache, werden wie erwartet das Startprojekt und alle Abhängigkeiten kompiliert und das Startprojekt gestartet. Drücke ich jedoch einfach F5 ("Starten/Fortsetzen"), wird offensichtlich erst mal die ganze Projektmappe kompiliert, also auch die beiden Setup-Projekte. Das führt dazu, das ich viermal (zweimal pro Setup-Projekt) eine Meldung wie diese> Fehlermeldung:

Der Befehl kann nicht ausgeführt werden, da sich die Datei "xxxxxxSetup.vdproj" unter der Quellcodeverwaltung befindet, und nicht ausgecheckt ist.

wegklicken muss, bevor endlich das Startprojekt startet.

Da stellen sich mir mehrere Fragen. Die wichtigste zuerst:

  • Kann man es hinbekommen, dass F5 "nur" das Startprojekt (inkl. Abhängigkeiten) kompiliert, bzw. warum gibt es da einen Unterschied?
  • Dass Setup-Projekte keine Dateien automatisch auschecken können (ist auch offizielle Aussage von Microsoft, wird aber scheinbar nicht als Bug angesehen), ist ja schlimm genug, aber was gibt es da beim Kompilieren überhaupt auszuchecken?
  • Ich könnte die beiden vdproj-Dateien manuell auschecken, aber was machen dann meine Kollegen...? Kann ja nicht Sinn der Sache sein.

Ich hoffe auf Eure Hilfe.

Grüße
Mr. Mango

24.08.2012 - 15:52 Uhr

Hallo Gogeta,

Dieser Fehler taucht auf: "Ein Sortierungskonflikt zwischen > Fehlermeldung:
'SQL_Latin1_General_CP1_CI_AS' und 'Latin1_General_CI_AS_KS_WS' im equal to-Vorgang kann nicht aufgelöst werden."

Das passiert, weil die beiden Spalten, welche du verjoinst, unterschiedliche Collations ("Sortierungen") haben. Das ist grundsätzlich unschön, lässt sich aber in einem JOIN durch explizite Angabe einer Collation umgehen:

INNER JOIN [Datenbank].dbo.Zahlungen AS d2 ON d2.Kunde = d1.ID COLLATE SQL_Latin1_General_CP1_CS_AS

Gruß
Mango

14.05.2012 - 16:20 Uhr

Hab's gerade selbst gefunden:
Der Hotfix KB2549864 behebt das Problem.

Gruß
Mr. Mango

14.05.2012 - 14:39 Uhr

Hallo zusammen,

es geht um einen lokalen Bericht (.rdlc), den ich ich schon in dem 2008er ReportViewer laufen hatte. Seit der Konvertierung in das 2010er Format funktionieren aber die Links nicht mehr. Ich habe an einem Textfeld einen Link auf einen anderen eingebetteten Bericht hinterlegt (Textfeldeigenschaften | Aktion | Als Link aktivieren: Gehe zu Bericht), es erscheint aber noch nicht einmal die Maus-Hand. Und auch keine Fehlermeldung.
Nach langem Stöbern bin ich auf LocalReport.EnableHyperlinks gestoßen, was ja wohl seit 2010 standardmäßig false ist, aber auch das hilft nicht.

Hier ein Auszug aus der RDLC-Datei:

<Textbox Name="AppDisplayName">
  <ActionInfo>
    <Actions>
      <Action>
        <Drillthrough>
          <ReportName>ReportCustomerApp</ReportName>
          <Parameters>
            <Parameter Name="CustomerId">
              <Value>=Parameters!CustomerId.Value</Value>
            </Parameter>
            <Parameter Name="AppId">
              <Value>=Fields!AppId.Value</Value>
            </Parameter>
          </Parameters>
        </Drillthrough>
      </Action>
    </Actions>
  </ActionInfo>
</Textbox>

Kann mir jemand helfen?

Viele Grüße
Mr. Mango

11.10.2011 - 17:14 Uhr

Hätte ich auch gesagt, aber im Primary Key ist null eh nicht erlaubt.

11.10.2011 - 16:43 Uhr

Also,
Du müsstest mal posten, wie lUser vorher befüllt wird. Da muss irgendwo der Haken sein.

Mango

11.10.2011 - 16:33 Uhr

Hallo Regenwurm,

meinst Du vielleicht Role statt Region?
Wenn usr.FK_Roles null ist, ist dann usr.FK_UserId auch null?
Wie mir scheint, ist lUser schon nicht richtig befüllt.

Gruß
Mango

14.09.2011 - 16:13 Uhr

Also, ich mache das auch per Polling. Sind im Moment schon über 100 Anfragen pro Sekunde (weil >1000 Clients alle 10 Sekunden anfragen). Würde ich auf jeden Fall vorziehen.
Das steckt der SQL Server locker weg.

Gruß
Mango

20.06.2011 - 15:57 Uhr

Mach mal vor dem Hinzufügen der DataSource die DataSources leer, also so:

this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add( reportDataSource1 );

Gruß
Mango

06.06.2011 - 17:09 Uhr

Hallo Boris,

das lässt sich schwer sagen.
Wenn Du nach dem Visual Studio-Neustart immer noch das Problem hast, liegt es offensichtlich nicht am Visual Studio und nicht am vshost (Prozess "<DeineAnwendung>.vshost.exe").
Passiert das mit anderen Projekten auch?
Wenn ja, hat wohl Dein Studio ein Problem. Evtl. mal SP1 neu installieren?
Wenn nein, verursacht Deine Anwendung das Problem.
Evtl. müssen bestimmte Objekte, die unmanaged Code aufrufen, disposed werden.
Was genau heißt "Du kannst nicht mehr starten"? Geht das Debuggen noch, wenn Du z.B. in Main() einen Breakpoint setzt?

Mango

06.06.2011 - 14:49 Uhr

Sorry unconnected,

mir ist beom Posten ein kleiner Fehler unterlaufen. Es muss so sein, und dann geht es auch mit dem Cast auf PinnableForm:

class MyForm : PinnableForm
{
}

class PinnableForm : Form
{
  public new bool TopMost
  {
    get { return base.TopMost; }
    set
    {
      base.TopMost = value;
      // Pin neuzeichnen
    }
  }
}

@winSharp93: Danke für den Tipp mit WndProc. Ich werd's mir mal angucken. Im managed Code passiert auf jeden Fall nichts, das habe ich schon mit ILSpy gesehen.

Mango

06.06.2011 - 13:28 Uhr

Hallo zusammen,

ich möchte in meiner von Form abgeleiteten Klasse (PinnableForm) einen Pin anzeigen, der das Property TopMost widerspiegelt (und natürlich auch anklickbar ist). Mein Problem ist, dass TopMost von außen änderbar ist, ich aber die Änderung dann nicht mitbekomme.

PinnableForm form1 = new PinnableForm();
form1.TopMost = true;

Ein TopMostChanged-Event gibt es nicht, und das TopMost-Property kann ich nicht sinnvoll überschreiben, weil es nicht virtual ist. Ein Überdecken mit new ist nicht wirklich praktikabel, weil mein Form in Wirklichkeit auch nur als Basisklasse dient. Damit würde es aber theoretisch funktionieren, nämlich so:


class MyForm : PinnableForm
{
  public new bool TopMost
  {
    get { return base.TopMost; }
    set
    {
      base.TopMost = value;
      // Pin neuzeichnen
    }
  }
}

und dann so:


MyForm form1 = new MyForm();
(form1 as PinnableForm).TopMost = true;

Aber das kann es ja nicht sein, oder?

Grüße
Mango

25.05.2011 - 14:52 Uhr

Naja, ich dachte, es sollte hier irgend einen Bezug zu C# geben. Das ist aber eine grundlegende SQL-Frage.

25.05.2011 - 14:41 Uhr

Hallo Heinzi2,

wenn es sich um ein selbstgebasteltes Control handelt, fehlt Dir evtl. noch das hier:

SetStyle(ControlStyles.ResizeRedraw, true);

Mango

25.05.2011 - 14:32 Uhr

Wieso, das geht doch.

select I, count(distinct II), count(III)
group by I

Aber davon abgesehen: Völlig falsches Forum, würde ich sagen.

Gruß
Mr. Mango

17.05.2011 - 16:33 Uhr

Danke für Deine schnelle Antwort, Sarc!

So geht's natürlich. Ich hätte es nur gerne statisch, damit ich auch drauf zugreifen kann, wenn ich kein Objekt habe. Gerade bei diesem Property ist das sehr brauchbar. Ich möchte halt einen richtigen Ersatz für typeof(T).Name.

Gruß
Mr. Mango

17.05.2011 - 14:26 Uhr

Hallo zusammen,

ich habe eine (statische) generische GUI-Methode, die mit allen Elementen aus dem übergebenen IEnumerable<T> etwas machen (hier: löschen) soll.


static void Delete<T>(IEnumerable<T> objects)
  where T : Base
{
  foreach (T obj in objects)
    if (!obj.Delete())
      MessageBox.Show("Fehler: " + typeof(T).Name + " " + obj.ToString() + " konnte nicht gelöscht werden.");
}

Das funktioniert soweit.
Jetzt wollte ich dem Anwender in der MessageBox aber nicht meine Klassennamen (typeof(T).Name) zumuten, sondern statt dessen ein in der Basisklasse definiertes statisches Property, das einen sprechenden Namen zurückgibt, benutzen.
Die Basisklasse und abgeleitete Klassen sehen dann so aus:


public abstract class Base
{
  [...]
  public static string FriendlyType
  {
    get { return "Unbekannt"; }
  }
}

public class Derived1 : Base
{
  [...]
  public static new string FriendlyType
  {
    get { return "Abgeleitete1"; }
  }
}

Jetzt mein Probme:
Wie kann ich in der GUI-Methode das statische Property FriendlyType der übergebenen Objekte (vom Typ T) lesen?
Geht das nur mit Reflection?
Oder sollte man so etwas komplett anders lösen?

Schonmal vielen dank für Eure Unterstützung!
Mr. Mango

04.10.2010 - 15:10 Uhr

Ergänzung:
Ob deutsch oder englisch, hängt offensichtlich vom ausgewählten Zielframework ab: Wenn ich als Zielframework 2.0, 3.0 oder 3.5 auswähle, sind alle Quicktips auf englisch. Bei Zielframework 3.5 Client Profile, 4.0 oder 4.0 Client Profile ist alles deutsch.
Das deutsche Language Pack für .NET Framework 2.0 kann ich z.B. aber nicht mehr installieren, weil es "als Bestandteil des Betriebssystems bereits installiert" ist.
Und jetzt?

Grüße
Mr. Mango

04.10.2010 - 13:04 Uhr

Hallo zusammen,

jetzt habe ich mich endlich mal in diesem - wirklich sehr wertvollen - Forum angemeldet, weil ich ein lästiges Problemchen habe:
Ich habe VS 2010 (deutsch) frisch installiert, und das C#-Intellisense (genauer: die Tooltips) ist komischerweise nur auf englisch. Die installierte Offline-Hilfe (F1) ist allerdings deutsch. Irgendwie habe ich ein Deja-Vue, denn bei 2008 war das auch längere Zeit genauso - bis endlich ein Hotfix kam. Diesmal habe nur das Gefühl, dass ich der einzige bin, der das Problem hat... Kann mir jemand helfen?

Meine Umgebung:
Windows 7 Professional x64 deutsch
Visual Studio 2010 Professional deutsch

Viele Grüße
Mr. Mango