Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   .NET-Framework (managed code) (https://www.delphipraxis.net/79-net-framework-managed-code/)
-   -   Texthint in C# (https://www.delphipraxis.net/168576-texthint-c.html)

v2afrank 29. Mai 2012 13:24

Texthint in C#
 
Hallo,
ich habe ein Projekt übernommen, dass in C# geschrieben ist. Jetzt möchte ich an einer Stelle einen Texthint setzen wie in Delphi XE2. Gibt es eine vergleichbare Eigenschaft in C# oder soll ich das selber schreiben ?

Morphie 29. Mai 2012 13:25

AW: Texthint in C#
 
WinForms oder WPF?

v2afrank 29. Mai 2012 13:25

AW: Texthint in C#
 
Winforms

mkinzler 29. Mai 2012 13:34

AW: Texthint in C#
 
Die entsprechende Eigenschaft heisst .ToolTip

v2afrank 29. Mai 2012 13:41

AW: Texthint in C#
 
Nein,
der Tooltip ist doch der Hint der angezeigt wird, wenn ich mit der Maus über das Control gehe.
Zumindest wenn ich es so mache:
Code:
    System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
    ToolTip1.SetToolTip(this.textBox1, "Hello");
Was ich suche nennt sich in Delphi XE2 (keine Ahnung wann es eingeführt worden ist) eben Texthint. Habe ich ein Eingabefeld (Tedit) in dem kein Text eingegeben ist, wird dort diese Text asugegeben, bis das Feld den Fokus bekommt. Ist sicherlich auch nicht schwer zu machen, nur nachher gibt es das schon eingebaut und ich ärgere mich, dass ich es selber gemacht habe

jfheins 29. Mai 2012 14:05

AW: Texthint in C#
 
Es gibt's noch nicht eingebaut.

Aber ich habe da ein paar interessante Seiten gefunden, die Lösungen anbieten:
:arrow: http://social.msdn.microsoft.com/For...3-5bc3d1ff7472
http://www.ageektrapped.com/blog/the...r-text-prompt/

himitsu 29. Mai 2012 14:05

AW: Texthint in C#
 
Du müßtest rausfinden, welcher Befehl im C# unter Windows das MSDN-Library durchsuchenEM_SETCUEBANNER setzt.
Falls es das gibt, [edit] was es aber scheinbar noch nicht tut.

Ansonsten selbst die Message versenden. In Delphi sähe es so aus.
Delphi-Quellcode:
SendTextMessage(Edit.Handle, EM_SETCUEBANNER, WPARAM(0), LPARAM(PChar(TextHint)));

Morphie 29. Mai 2012 14:42

AW: Texthint in C#
 
Also das klappt bei mir:
Code:
using System.Runtime.InteropServices;

[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);

private void Form1_Load(object sender, EventArgs e)
{
    const int EM_SETCUEBANNER = 0x1501;
    SendMessage(textBox1.Handle,EM_SETCUEBANNER,0,"Eingeben!");
}
Man könnte sich auch eine eigene TextBox ableiten...

jfheins 29. Mai 2012 15:01

AW: Texthint in C#
 
Zitat:

Zitat von Morphie (Beitrag 1168579)
Also das klappt bei mir:
...
Man könnte sich auch eine eigene TextBox ableiten...

Klar. In dem Link, den ich oben gepostet habe, ist aber noch etwas besseres:
Nicht nur wird der P/Invoke gekapselt, sondern der Code ist eine Komponente.
Und diese erweitert alle Textboxen und Comboboxen auf dem Formular um zwei Properties mit denen man das bequem einstellen kann ;-)

(http://social.msdn.microsoft.com/For...3-5bc3d1ff7472 dritte grüne Antwort)

v2afrank 30. Mai 2012 06:56

AW: Texthint in C#
 
Danke jfheins, ich werde es so machen wie in Deinen Links angegeben.
Edit:
Gerade die dritte Antwort ist genial und genau das was ich gesucht habe


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz