我有一个Control类型变量,它将被设置为组合框或文本框。我无法从控制变量访问选择开始属性。这必须是因为该数据类型是没有该属性的控件的父级。如何解决这个问题以访问选择开始属性?
代码:
.wrapper {
width:100%;
height:100%;
border:1px solid;
}
.photo {
height: 100%;
background:blue;
float:right;
vertical-align:top;
text-align:center;
padding:2px;
}
.photo_dimensions {
max-height: 149px;
max-width: 149px;
}
.details {
width:auto;
height:auto;
background:red;
overflow:hidden;
vertical-align:top;
text-align:left;
}
答案 0 :(得分:2)
您是正确的,这是一个数据类型问题。您需要将object
类型转换为textbox
才能访问选择开始属性。
if(FocusedTextComboBox is TextBox)
SelectionStartNumber = (FocusedTextComboBox as TextBox).SelectionStart
答案 1 :(得分:1)
扩展user3529814的答案,将局部变量声明为TextBox并转换控件,以便在整个块中使用它:
if (FocusedTextComboBox is TextBox)
{
TextBox tb = (TextBox)FocusedTextComboBox;
if (SearchTextBox.SelectionStart == 0 && SearchTextBox.Text != "")
{
switch (shift)
{
case true:
tb.Text += upperCaseChar;
break;
case false:
tb.Text += lowerCaseChar;
break;
}
}
else
{
int SelectionStartNumber = tb.SelectionStart;
switch (shift)
{
case true:
tb.Text = tb.Text.Insert(tb.SelectionStart, upperCaseChar);
break;
case false:
tb.Text = tb.Text.Insert(tb.SelectionStart, lowerCaseChar);
break;
}
tb.SelectionStart = SelectionStartNumber + 1;
}
}