Hi,
Warum und wofür?
ich habe ein Programm, dass Netzlaufwerke verbindet.
Damit nicht bei jedem Laufwerk immer das Passwort abgefragt wird, sollen sie gespeichert werden.
Gruß
Hi
Hätte da ne Frage zu WPF
Meine Combobox enthält unter anderem ein Hyperlink. Dieser Hyperlink soll einen Command ausführen.
Das Problem ist nun, ist die Combobox zugeklappt lässt sich der Hyperlink nicht ausführen.
Beim Mousover wird dieser schon nicht erkannt. Der Mauszeiger wechselt nicht zu einer Hand. Ein Klick auf den Hyplerlink öffnet halt die Combobox. Was ja eigentlich auch gewollt ist wenn man irgendwo in die Combobox klickt. Und nicht nur auf den kleinen Button mit dem Pfeil nach unten.
Hier ist einfach der Button überlagert.
Was ich mir nun vorstellen könnte wäre wenn man gleichzeitig auf der Tastatur die Strg Taste drückt man auf den darunterliegenden Hyperlink zugreifen kann.
Ähnlich wie in einem Worddokument zum Beispiel. Hierzu suche ich nach einer Lösung. Vieleicht kann mir hier jemand helfen.
Gruß
Hi leute,
Ich versuche seit 2 Tagen mit dem (fast) gleichen Code meine Webcam mit ner pictureBox zu verbinden.
Die Webcam wird gefunden, angesteuert und geht an (LED an).
Ich bekomme aber nichts in der pictureBox angezeigt:
Ich schreibe allerdings in CLI, weshalb ich mir den Code angepasst habe.
Nur mit dem Umschreiben der Zuweisung des Eventhandlers
videoSource.NewFrame += new AForge.Video.NewFrameEventHandler(videoSource_NewFrame);
klappt das nicht so ganz
videoSource->NewFrame += gcnew AForge::Video::NewFrameEventHandler(videoSource_NewFrame());
Bei der "Schreibweise" werden eben 2 Argumente gefordert(Object^, NewFrameEventArgs^), die ich einfach nicht parat hab
mit...
private void videoSource_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
{
//ankommende bilder aus dem event unserer picturebox zuweisen
pictureBoxCam.Image = (Image)eventArgs.Frame.Clone();
}
bin ich mir auch nicht sicher...
Ich lasse diese Ereignisse immer vom Designer erstellen,
in dem Fall hab ich es selber geschrieben.
Und bei der Zuweisung
pictureBox1->Image = (Bitmap)eventArgs->Frame->Clone();
bekomm ich auch iwie keine Konvertierung zustande.
Ich wäre über jeden Tipp dankbar.
Grüße
Ich habe nur Windows 7 und wußte das nicht. Im Prozess Explorer von WinInternals kann man tatsächlich bei Win7 die Kommandozeilen Argumente sehen, auch wenn man sie in eine .bat packt. Ich werde den User darauf hinweisen und er muß selber entscheiden ob er das Risiko eingeht.
Der erste Teil meiner "Frage" hat etwas in die falsche Richtung geziehlt. Wie das mit der Komandozeile geht weiß ich aus meiner C Zeit.
Vielen Dank
Peter
Ich möchte im Visual Studio Express neben der Exe ein paar Ressourcen ausliefern, auf welche die Exe zugreift. Diese Ressourcen werden im VS-Projekt in einem Ordner Ressourcen abgelegt. Beim Kompiliervorgang habe ich "In Ausgabeverzeichnis Kopieren"-> "Immer kopieren" und bei "Buildvorgang" -> "keine" ausgewählt. Das Problem ist nun das die Dateien nicht im Verzeichnis der Exe liegen (Debug oder Release) sondern im Unterverzeichnis Ressourcen. Wo kann man das Verzeichnis genauer einstellen?
Ich habe jetzt erstmal alle Ressourcen auf die Ebene des Projektes verschoben, sieht aber nicht schön aus.
Nun habe ich doch eine Möglichkeit gefunden ...
Zunächste die Eigenschaft
MultiSelect = true
sowie
SelectionMode = CellSelect
eingestellt.
Und noch beim Click Event
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex > -1)
{
dataGridView1[2, e.RowIndex].Selected = true;
dataGridView1[3, e.RowIndex].Selected = true;
dataGridView1[4, e.RowIndex].Selected = true;
dataGridView1[5, e.RowIndex].Selected = true;
dataGridView1[16, e.RowIndex].Selected = true;
dataGridView1[17, e.RowIndex].Selected = true;
dataGridView1[21, e.RowIndex].Selected = true;
dataGridView1[28, e.RowIndex].Selected = true;
dataGridView1[31, e.RowIndex].Selected = true;
....
Allerdings werden die Zellen immer etwas verzögert markiert. Gibt es eine Möglichkeit dies zu beschleunigen oder eben anderst zu lösen?
Th69 schrieb:
oder hat diese noch mehr (private) Member?
Leider ja.
Th69 schrieb:
Für den Aufrufer gibt es dann natürlich keine eigene Klasse GizmoList mehr, sondern dann nur noch List<Gizmo> bzw. noch besser IList<Gizmo> oder IEnumerable<Gizmo>.
Damit hätte ich wieder dasselbe Problem wie am Anfang. Ich stimme zu, daß Extension Methods mit Constraint die bessere Lösung sind. Aber halt nur, wenn man früh genug dran denkt.
Bei jedem Aufruf der Zeile "var handler = delegate..." würde doch handler einen Zeiger auf eine neue Funktion enthalten. Laut Fehlermeldung kann ich Delagate nicht in var abspeichern, man müsste die Delagate Definition wieder verwenden.
Ich arbeite jetzt mit MnuItemAdd.RemoveAllHandlers();
1. Richtig, in meiner TestAnwendung erzeuge ich ein Control, und weiße es einem ContentControl zu, danach hole ich mir das controkl wieder aus dem Contentcontrol und setze die Referenz auf null, so dass der GC weiß, dass er das control löschen kann ! das sehe ich am Destructor aufruf! in dem ich GC.Collect explizit aufrufe !
2. Genau, eben das beschreibt mein Problem, ich WILL ja disconnecten, aber die frage ist wann ich das machen kann! Ich habe auch schon erwähnt, dass ich das im UnLoaded event des Controls das event des DP disconnectet habe, was auch klappt.. da dass controll vom GC auch gelöscht wird.. die frage war, ob das der richtige weg ist mit dem Unloaded....
3. Weak Events wäre dann der letzte ausweg, um sicherzustellen dass ich keien memory leaks bekomme...
Hallo Leute,
folgendes Control:
public class ViewItemBase : Control, INotifyPropertyChanged
{
static ViewItemBase()
{
FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(
typeof(ViewItemBase), new FrameworkPropertyMetadata(typeof(ViewItemBase)));
}
....
#region RotationAngle
public double RotationAngle
{
get { return (double)GetValue(RotationAngleProperty); }
set { SetValue(RotationAngleProperty, value); }
}
// Using a DependencyProperty as the backing store for RotationAngle. This enables animation, styling, binding, etc...
public static readonly DependencyProperty RotationAngleProperty =
DependencyProperty.Register("RotationAngle", typeof(double), typeof(ViewItemBase), new UIPropertyMetadata(0.0, OnRotationChange));
private static void OnRotationChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var me = d as ViewItemBase;
me.CalcBounds();
}
#endregion
...
}
der XAML Style dazu:
<Style x:Key="{x:Type Model:ViewItemBase}" TargetType="{x:Type Model:ViewItemBase}">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="{Binding RotationAngle, RelativeSource={RelativeSource AncestorType={x:Type Model:ViewItemBase}}}"/>
</Setter.Value>
</Setter>
</Style>
Das Binding des RotationTransform Angle funktioniert, aber trotzdem bekomme ich ein Binding error:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='Designer.Core.Controls.Model.ViewItemBase', AncestorLevel='1''. BindingExpression:Path=RotationAngle; DataItem=null; target element is 'RotateTransform' (HashCode=62225447); target property is 'Angle' (type 'Double')
Was is da falsch ! ?? Obwohl es geht:)
P.S. Alternativ RelativeSource={RelativeSource TemplateParent} geht nicht,deswegen über die Ancester!!
grüße
Firefighter schrieb:
Prof84 schrieb:
Hallo!
Du musst INotifyPropertyChanged mit der Liste im Code anbinden.
Oder nutze die IComparer, System.Collections.Generic.EqualityComparer<T>() zwischen den Listen.
Oder ICollection<T> geht auch.
Ich weiss nicht was du damit erreichen willst, aber auf jedenfall ist es viel zu kompliziert.
@Bergziege: Schau doch mal hier
Hat sie doch geschrieben. Du löst bei der Übertragung zwischen den Forms kein Event aus!
Wie gesagt, ich bin absoluter Neuling und muss erst mal lernen was man wann und wo deklariert.
Inzwischen bin ich weiter und die Sache funktioniert mal soweit.
Danke fuer die Hilfe
Wasserlasser
Marsipulami schrieb:
Ich füge die Daten nicht über eine DataSource hinzu, sondern wie folgt:
string[] row = { id.ToString(), anzahl, preis };
dataGridView1.Rows.Add(row);
Dann gilt mein Link immernoch. - Ändere das Verhalten, auf eine DataSoure. Das erspart dir z.B. viel Code geschreibse (falls deine Items eine Collection sind, kannst du z.B. eine BindingList<T> an das DataGridView hängen).
volkard schrieb:
MSDN schrieb:
The SortedDictionary(TKey, TValue) generic class is a binary search tree with O(log n) retrieval, where n is the number of elements in the dictionary.
Tatsache, daran habe ich gar nicht gedacht
Hallo,
im DataGridView soll eine Spalte eine Combobox sein.
Eigentlich möchte ich diese dann mit Daten aus der DB füllen, aber momentan klappt es noch nicht mal auf diese Art und Weise
Beim Klick auf die DataGridViewComboBoxColumn erhalte ich nun jedoch immer die Fehlermeldung:
[b]DataGridViewComboBoxCell-Wert ist ungültig. Behandeln sie das DataError ...
Kann mir bitte jemand helfen? Ich weiß nicht, was ich falsch mache?!
Danke!
Hier mein Code zum Einrichten bzw. Anlegen der Spalten:
[code="cs"]
dgDaten.Rows.Clear();
dgDaten.Columns.Clear();
dgDaten.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy;
dgDaten.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();
columnHeaderStyle.BackColor = Color.Aqua;
columnHeaderStyle.Font = new System.Drawing.Font("Verdana", 7, FontStyle.Bold);
dgDaten.ColumnHeadersDefaultCellStyle = columnHeaderStyle;
dgDaten.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
dgDaten.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
dgDaten.CellBorderStyle = DataGridViewCellBorderStyle.Single;
dgDaten.GridColor = Color.LightGray;
dgDaten.RowHeadersVisible = false;
dgDaten.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgDaten.MultiSelect = true;
dgDaten.AlternatingRowsDefaultCellStyle.BackColor = Color.PapayaWhip;
dgDaten.Columns.Add("name", "Name");
dgDaten.Columns.Add("nummer", "Nummer");
DataGridViewMaskedTextColumn column = new DataGridViewMaskedTextColumn("00,00,0000");
column.HeaderText = "Datum";
column.Name = "datum";
column.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
column.Width = 100;
dgDaten.Columns.Add(column);
DataGridViewComboBoxColumn comboColumn = new DataGridViewComboBoxColumn();
ArrayList row = new ArrayList();
row.Add("Leiter");
row.Add(" Aktives Mitglied");
row.Add("Passives Mitglied");
comboColumn.Items.AddRange(row);
comboColumn.HeaderText = "Funktion";
comboColumn.Name = "fkt";
dgDaten.Columns.Add(comboColumn);
Hier ist eine Internet Quelle zu der Meldung:
http://msdn.microsoft.com/en-us/library/ms228217(v=vs.80).aspx
Portions of the build process defined in the project file are executed at design-time immediately after a project is loaded in the integrated development environment (IDE).
Bei meinem Projekt kann ich überhaupt nicht erkennen das dort irgendetwas abweichend von den Std Einstellungen vorhanden ist. Ich wenn ich .Sln und .Csproj im Texteditor öffne.
Ahh ok schade!
Ja es ging mir um die Datenkonsitenz
Das Visible DP , setz bei true die Visibilty der Elements auf Visible und bei
false auf Hidden! logisch
wenn aber nun jemand das Visibility Property des Elements nicht über das Visible Property ändert, bekommt diese nicht mit!
Ich hätte gern anstatt auf das DP backing field, des Visible zu lesen, noch gern aus gewertet ob es auch tatsächlich konsistent zum Visibility Property ist..
Aber ich kann es auch anders lösen, war nur so ne idee!