質問

ラベルコントロールに収まらないほど長い文字列を連結しています。文字列の終わりが常に表示されるように、右側に自動スクロールするにはどうすればよいですか?

役に立ちましたか?

解決

やる方法があると確信していますが、なぜですか?見た目や動作がひどく、おそらくユーザーを混乱させると思います。

テキストを最後に楕円(...)で切り取り、ラベルにツールチップを表示しないのはなぜですか?

using System.Windows.Forms;

var label = new Label();
label.AutoSize = false;
label.AutoEllipsis = true;
label.Text = "This text will be too long to display all together.";

var labelToolTip = new ToolTip();
labelToolTip.SetToolTip(label, label.Text);

ユーザーがマウスカーソルを合わせると、ツールチップに全文が表示されるようになりました。ラベル内のテキストは切り捨てられて楕円で終わるため、ユーザーはマウスオーバーして詳細を確認する必要があります(通常は標準的な方法です)。

他のヒント

TextAlign プロパティを使用すると、配置を指定できます。これで右揃えすると、テキストの右側が常に表示されます。ただし、それを左揃えまたは中央揃えにし、説明した動作を維持する場合は、 Graphics.MeasureString を使用して、テキストが適合するかどうかを判断し、動的に配置を変更します。

AFAIKラベルをスクロールする方法はありません。ハックは、TextBox(読み取り専用、境界線をオフにする)を使用し、SendKeys.Send()を使用してカーソルをテキストの最後に移動することです。次のようなもの:

        textBox1.Focus();
        SendKeys.SendWait("{END}");

選択したテキストが表示されないようにするには、タブオーダーの位置を変更する必要がありました(1にならないようにしました)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top