• ベストアンサー

構文がわかりません。直訳していただければ。

タブオーダーの関係です。 To have a Label control lend its hot key to another control on the form, you must assign the Label's TabIndex property a value that is 1 less than the value of the other control's TabIndex property. (和訳) Labelコントロールのホットキーを使用して、フォーム上の別のコントロール(この場合はTextBoxコントロール)にフォーカスを移動できるようにするには、LabelコントロールのTabIndexプロパティに、その(TextBox)コントロールのTabIndexプロパティの値より1だけ少ない値をあらかじめ割り当てなければならない。 (質問) 上の和訳は翻訳専門家によるもので、内容はよくわかりますが、英文[To have a Label control lend its hot key to another control]のかかり受けがわかりません。文法的に直訳してご教授いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

haveは使役動詞で、「~を~の状態にする」、「(人)に~させる[してもらう]」の意、 lendが、「貸す」、「貸し出す」、「〔物が〕~に役立つ」ですから、 (後はおわかりですよね) 「Labelコントロールに、そのホットキーをフォーム上の別のコントロールに貸し出させるために、」 もしくは、 「Labelコントロールに、そのホットキーをフォーム上の別のコントロールの用に供させるために、」 となります。 これで、翻訳専門家の方の訳にうまくつながるかどうか、ご判断ください。

knaka09
質問者

お礼

早速ありがとうございました。参考になります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • KappNets
  • ベストアンサー率27% (1557/5688)
回答No.3

使役動詞 have の使い方という内容です。a Label control を使役して lend 以下のことをさせる、ということなのですが、如何ですか? (lend 以下はits hot key を another control に lend する)貸す (lend) というのはやや奇妙な操作ですね。

knaka09
質問者

お礼

早速ありがとうございました。おかげさまでなんとかなりそうです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

lendって、基本的な意味は「貸し与える」だと思うので haveを使役動詞(?と言うのでしょうか, makeとかletみたいな使い方)ととると 「Label Control (というobjectでしょうか、そのPropertyもしくはMethod)のHot keyをForm上の他のControlに渡させる(have ~ Lend)ためには、」というように見えますが、自信はありません。Computerやプログラミングの洋書は、用語と英語本来の単語がかぶって見えるので、どれが用語(コマンドや関数名、変数名)でどれが英文本来の動詞なのかわかりずらい時があり、私は苦労します。

knaka09
質問者

お礼

早速ありがとうございます。ぼんやりと先が見えそうです。使役動詞しかないですよねー、やはり。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 直訳がわかりません。

    直訳がわかりません。 The forethought and planning invested at each step of writing a proposal will have a direct impact on the chances of its acceptance. (企画書は、それぞれの項目ごとに前もって十分構想を練ってから書くと、その企画が採用される可能性がぐんと上がります。) ( )の文章が参考書の和訳になるのですが、The forethoughtからa proposalの部分がなぜ上記の訳になるのかイマイチわかりません。直訳にすると、どのような訳になるのでしょうか。

  • 入力フォームについて

    FC2のホームページを利用しています 入力フォームのサンプルを手本にして、以下のように作成しましたが 「送信ボタン」をクリックしても、メールが届きません。 どうしてでしょうか? <form action="mailto:xxx@xxx.ne.jp" enctype="text/plain" method="post"> <p><label>NAME:<br /> <input type="text" name="名前" value="" tabindex="1" accesskey="b"> </label></p> <p><label>E-MAIL:<br /> <input type="text" name="メールアドレス" value="" tabindex="2" accesskey="a"> </label></p> <p><label>感想・ご意見<br> <textarea name="title" rows="15" cols="30" tabindex="9" accesskey="i"> </textarea> </label></p> <p> <input type="reset" value="送信" tabindex="10" accesskey="s"> <input type="reset" value="取消" tabindex="11" accesskey="r"> </p> </form>

  • マクロで関数の使い方

    下記のコードを試したのですが、オブジェクトはこのプロパティまたはメソッドをサポートしていませんとエラーが出ます。 どの部分の書き方が間違っているでしょうか? Label93.Caption = 2 * (Application.SQRT(Val(Label91.Caption) ^ 2 - (Val(Label91.Caption) - Val(TextBox35.Value)) ^ 2))

  • Labelコントロールの(左右)余白について

    最近になってMicrosoft Visual Basic 2008 (ProfessinaolEdition)を触り始めたばかりです。 「Windowsフォームアプリケーション」で作成しています。 Labelコントロールって、TextBoxと比べて、コントロール内(左右)に少し余白がありますよね?Paddingプロパティを0にしてもこの余白はそれ以上小さくなってくれません。 これを、TextBoxと同じぐらいのギリギリ右に寄せて表示することはできないものでしょうか。 それをやろうとすると、Labelを2つ重ねたり、またはカスタムコントロールを作る等の方法しかないでしょうか。 それとも、私が何か凄い勘違いや見落としをしているのでしょうか?? ご指摘いただけるか、或いは回避方法等をご存じの方、おられましたらお願いします。

  • TabIndexを使わないで、フォーカスの移動

    ご多忙中大変申し訳ありません。 VBの初心者です。 TabIndexを使わないで、コントロールの名前の番号でフォーカスの移動をしたいのですが、私のレベルでは全くできません。 TextBox1、TextBox2、TextBox3、TextBox3、~TextBox15 のようにTextBoxの後ろに付いている、数字を利用してフォーカスの移動をしたいと思っております。 実装前に下記のようなコードを書いてテストしていますが、どこを調べても、また試行錯誤を繰り返してもできません。 Public Class Form1 'テスト Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.KeyPreview = True '1列目TextBoxの生成 Dim i As Integer For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(50, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 txtbx.Text = "TabIndexは" & CStr(i * 3) txtbx.Name = "TextBox" & CStr(i + 1) Me.Controls.Add(txtbx) Next '2列目TextBoxの生成 For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(160, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 + 1 txtbx.Text = "TabIndexは" & CStr(i * 3 + 1) txtbx.Name = "TextBox" & CStr(i + 6) Me.Controls.Add(txtbx) Next '3列目TextBoxの生成 For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(270, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 + 2 txtbx.Text = "TabIndexは" & CStr(i * 3 + 2) txtbx.Name = "TextBox" & CStr(i + 11) Me.Controls.Add(txtbx) Next End Sub Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyCode = Keys.Right Then '→キーによるフォーカスの移動 Me.SelectNextControl(ActiveControl, True, True, True, False) e.Handled = True ElseIf e.KeyCode = Keys.Left Then '←キーによるフォーカスの移動 Me.SelectNextControl(ActiveControl, False, True, True, False) e.Handled = True End If '↓(Down)キーによるフォーカスの移動  ここができません。 If e.KeyCode = Keys.Down Then Dim txtboxname As String txtboxname = Me.ActiveControl.Name 'TextBoxの名前の名前の取得 Dim txtbxnum As String txtbxnum = txtboxname.Remove(0, 7) 'TextBox~の名前から、~(数字)だけにする。 Dim controlName As String controlName = "TextBox" & CStr((CInt(txtbxnum) + 1)) 'TextBox~の名前の~に1を足す。 Me.Controls(controlName).Select() 'TextBox~+1のTextBoxをフォーカス 'Select() Focus()も結果は同じです。 End If '↑(Down)キーによるフォーカスの移動 'この部分は、↓(Down)キーによるフォーカスの移動が出来るようになりましたら、追加します End Sub ' Enterキーによるフォーカスの移動 Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(ActiveControl, True, True, True, True) e.Handled = True End If End Sub End Class 最終的な目的の動作は、EnterキーではTabIndexの順番にフォーカスの移動。 ←キーでは、左にフォーカスの移動。 →キーでは、右にフォーカスの移動。 ↑キーでは、上にフォーカスの移動。 ↓キーでは、下にフォーカスの移動。 コントロールの名前の番号でフォーカスの移動をしたい理由は、 Enterキーと←、→キーによるフォーカスの移動でTabIndexの順番を使い、上下方向、↑キー、↓キー移動には、TabIndexの順番が画像のように少々複雑になってしまい、TabIndexを使用してのフォーカスの移動は断念しました。 もし、TabIndexでフォーカスの移動が出来るようなら、そちらのほうでもかまいません。 使用バージョンは、VB2010 Express Edition です。 ご迷惑を、おかけしますが、どうかご助力をお願いいたします。

  • VisualC#.net TabIndexの設定

    Microsoft Visual C# .NET 2003で、Windowsアプリケーションを作っています。 フォーム上に、テキストボックスですとかプッシュボタンですとか、コントロールがいくつかあります。 実行時にTabキーを押したときの順番(Tabオーダー)は、プロパティの"TabIndex"で決まっていると思うんですが、 あとでコントロールを追加したときなどTabIndexをずらしたり付け替えたりするにはどうすればよいのでしょうか。 1つ1つ付け替えるしかないのでしょうか。

  • Enterキーでもコントロール間を移動するには?

    通常はデフォルトで、コントロール間を移動するにはTABキーとなっていますが、コントロールのプロパティのTabIndexで、その移動順序を数字で指定するようになっていると思うのですが、このコントロール間を移動をEnterキーでも行えるようにしたいと思っています。 どのような方法(プロパティ設定?コード記述?)が必要となりますか? よろしくお願い致します。

  • 配列化

    VB2005においてlabel,textboxといったコントロールを配列化したいのですがどうすればいいでしょうか? VB6では下記のコードが成り立ちますが・・・ For i=0 to 3 label(i).caption = str(i) Next このようにコントロール自体を配列化することは出来るのでしょうか?

  • VC++ で TextBoxから、次のコントロールに移動する方法について

    VC++で、フォーム上に複数のTextBoxを配置して、タブインデックスで、次に移動したいTextBoxを設定しました。 最初のTextBoxに入力した後、Tabキーで、次のコントロールに移動することはできましたが、Enterキーで次のコントロールへ移動することはできないのでしょうか? TextBoxのプロパティの設定方法とを教えて下さい。

  • テキストボックスの数値を3桁ごとに区切りたい。

    テキストボックスの数値を3桁ごとに区切りたい。 エクセルのユーザーフォームにテキストボックスを1~7まで並べています。 テキストボックス1~6の合計を7に入れるようにしています。 テキストボックスに記入するVBAは以下のように投入しています。 合計は上手く表示されるのですが、3桁ごとに「,」の区切りを入れたいと思っています。 どのように記述したらよいのか、教えていただけないでしょうか。 -------------------------------------- Private Sub TextBox1_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox2_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox3_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox4_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox5_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox6_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub -------------------------------------- #次の文字を書くテキストボックスの情報に加えてみましたが、 合計が狂ってうまくいきませんでした。 TextBox1.Text = Format(TextBox1.Value, "#,##0") TextBox7.Text = Format(TextBox7.Value, "#,##0")