Bild in RichTextBox
-
Hallo zusammen, wie kann ich in eine RichTextBox ( WinForms VS 2008 Standard )eine Bitmap einfügen, zur Laufzeit, oder zur Entwurfszeit ? Gegoogelt habe ich schon, ohne Erfolg. Weiss jemand Rat ?
-
Zur Entwurfszeit geht es mit PictureBox, zur Laufzeit ?
-
So jetzt habe ich Euch umsonst generft, vielleicht könnt Ihr es gebrauchen, es geht ebenfalls mit PictureBox:
Bitmap MyImage = new Bitmap(openFileDialog2.FileName);
PictureBox pictureBox1 = new PictureBox();
int h = MyImage.Height;
int w = MyImage.Width;
pictureBox1.ClientSize = new Size(w,h);
pictureBox1.Image = (Image)MyImage;
richTextBox1.Controls.Add(pictureBox1);Tschüss ...
-
Doch nochmals, ( mehr als viermal sollte man sich hintereinander nicht melden ) die gleiche Funktionalität wie bei WordPad, wird man so leicht wahrscheinlich nicht erhalten. Dass man einen Ziehrahmen um die Bitmap legen könnte, das Bild dehnen und verschieben. MouseMove geht wahrscheinlich nicht weil die PictureBox den Focus hat, beim Maus-Ziehen ...
-
Mittels Controls.Add fügst du nur die PictureBox in der UI über die RichTextBox, aber du fügst das Bild nicht ein.
Dies geht mittels Object Linking and Embedding (OLE), s. z.B. Inserting images into a RichTextBox control (the OLE way).
-
Da habe ich mich zu früh gefreut, das Beispiel ist ziemlich kompliziert, das ist man von .NET gar nicht gewohnt, geht es auch einfacher ?
-
Es geht einfacher:
Bitmap myImage = ....
Clipboard.SetImage(myImage);
richTextBox1.Paste();Das kann man mit Wordpad lesen.
Nur die Position, wo das Bitmap hinsoll ist schlecht einzustellen,
gibt es da eine Funktion zB "SetCursor", SelectionStart ?
-
Ja, SelectionStart und SelectionLength sind die richtigen Eigenschaften dafür (alternativ die Select()-Methode).
-
Manchmal frage ich mich, ob das RichTextBox Steuerelement überhaupt notwendig ist, man könnte ja auch: Process.Start("wordpad.exe"); sagen. Darf man das überhaupt ? Der Anwender hat ja für Wordpad schon bezahlt ???