Visual C# Express 2010 フォーム アプリケーションにパス セレクターがあります。
aFolderBrowserDialog
と a (single line)を使用しTextBox
て、選択したパスを表示します。UI 更新コードで次の行を使用します。
this.textBoxFolder.Text = this.folderBrowserDialog1.SelectedPath;
フォーム デザイナーを使用して、ReadOnlyプロパティをtrueに設定し、TextAlignプロパティをRightに設定します。これは、選択したパスが TextBox よりも長いことが多く、パスの右側を表示することを好むためです。フォーム デザイナーはこれを生成します。
//
// textBoxFolder
//
this.textBoxFolder.Location = new System.Drawing.Point(40, 72);
this.textBoxFolder.Name = "textBoxFolder";
this.textBoxFolder.ReadOnly = true;
this.textBoxFolder.Size = new System.Drawing.Size(160, 20);
this.textBoxFolder.TabIndex = 13;
this.textBoxFolder.TabStop = false;
this.textBoxFolder.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
選択したパスがテキスト ボックスのサイズよりも短い場合は常に、右揃えが機能します。(しかし、これはあまり重要ではありません)
選択したパスがテキスト ボックスのサイズよりも長い場合、右揃えは効果がなく、テキスト ボックス内の文字列は、一番左の文字が表示され、一番右の文字が非表示になるように表示されます。
通常の 1 行の TextBox ( ) では、非常に長い文字列を手で入力すると、 TextAlign が Left / Right / Center に設定されているかどうかに関係なくReadOnly = false
、フォーカスが離れても右端の文字が表示されることがわかっています。
言い換えれば、私の目標は、TextBox.Text が (入力ではなく) プログラムで設定され、文字列が TextBox の幅よりも長い場合、右端の文字を表示するにはどうすればよいですか?