XtraGridリポジトリエディタで入力した1行のテキストをその列の固定幅に制限する必要があります。このフィールドはレポートに表示されるため、モノスペースフォントとMaxLenghtは使用できません。
KeyPressイベントハンドラで、ラベルを作成し、文字列をその上に置き、そのPreferedSize.Widthを列の幅と比較しようとしました。それはうまくいきましたが、余分な文字を削除する必要がある場合は、貼り付け操作を制御するのは簡単ではありません(f.ex:テキスト値を変更すると、カーソルは0にジャンプします)。
私はActiveEditor.CreateGraphics.MeasureStringを使ってみましたが、DevExpressと同じ方法でテキストを描画(計測)することはできません。
Before_WordWrapイベントをキャッチすることができれば解決策になります。
ありがとうございます。DevExpress-WinFormsテキストをテキストの幅に制限します。最大幅ではありません
編集:私は自分自身で答えを見つける努力が十分ではなかったと考えているので、2つの否定投票をしましたが、答えは簡単ではないと考えています。スレッドを削除しないのは、他の人に役立つと思うからです。よろしくです。 よろしくお願いします。
maxlengthプロパティは使用できません。あなたが制限したいXTraGridのフィールドは何ですか?また、テキストの長さを取得して最大長を設定できるEventHandlerもあります。 – MethodMan
フィールドは、Crystal Reportsレポートに表示される請求書の記事の説明です。私は複数行のフィールドを使うことはできません。 –
入力されたテキストの長さはどれくらいですか?この機能を持つことを望んでいるコードを投稿して、それがあなたのために働くかどうかを確認するメッセージを投稿できます。 ?グリッドの内部には、そのフィールドのonChangedイベントがあります。これは、実際にチェックが行われるべき場所です。multilineは問題ではありません。これを処理するにはいくつかの方法がありますが、実際に作業しているコードスニペットを表示する必要があります。 – MethodMan