DataObject.GetData 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回与所指定数据格式关联的数据。
重载
GetData(String, Boolean) |
返回与所指定数据格式关联的数据,使用自动转换参数来确定是否将数据转换为此格式。 |
GetData(String) |
返回与所指定数据格式关联的数据。 |
GetData(Type) |
返回与所指定类类型格式关联的数据。 |
GetData(String, Boolean)
返回与所指定数据格式关联的数据,使用自动转换参数来确定是否将数据转换为此格式。
public:
virtual System::Object ^ GetData(System::String ^ format, bool autoConvert);
public virtual object GetData (string format, bool autoConvert);
public virtual object? GetData (string format, bool autoConvert);
abstract member GetData : string * bool -> obj
override this.GetData : string * bool -> obj
Public Overridable Function GetData (format As String, autoConvert As Boolean) As Object
参数
- format
- String
要检索的数据的格式。 请参见 DataFormats 以获取预定义的格式。
- autoConvert
- Boolean
如果要将数据转换成指定的格式,则为 true
;否则为 false
。
返回
与指定格式关联的数据,或为 null
。
实现
示例
下面的代码示例使用 autoConvert
参数来指定是否转换数据格式,检索存储在 DataObject中的数据。
首先,使用文本数据创建新的 DataObject 。 然后,该示例尝试检索数据,将其格式指定为字符串,并且不进行格式转换,即 参数 autoConvert
为 false
。 此操作失败,因为 中 DataObject没有字符串数据。
接下来,该示例尝试再次检索数据,并将 autoConvert
参数设置为 true
。 此操作成功,结果显示在 中 MessageBox。
此代码要求 textBox1
已创建 。
private:
void GetMyData3()
{
// Creates a new data object using a string and the text format.
String^ myString = "My new text string";
DataObject^ myDataObject = gcnew DataObject( DataFormats::Text,myString );
// Prints the string in a text box with autoconvert = false.
if ( myDataObject->GetData( "System.String", false ) != 0 )
{
// Prints the string in a text box.
textBox1->Text = String::Concat(
myDataObject->GetData( "System.String", false )->ToString(), "\n" );
}
else
{
textBox1->Text = "Could not find data of the specified format\n";
}
// Prints the string in a text box with autoconvert = true.
textBox1->Text = String::Concat(
textBox1->Text, myDataObject->GetData( "System.String", true )->ToString() );
}
private void GetMyData3() {
// Creates a new data object using a string and the text format.
string myString = "My new text string";
DataObject myDataObject = new DataObject(DataFormats.Text, myString);
// Prints the string in a text box with autoconvert = false.
if(myDataObject.GetData("System.String", false) != null) {
// Prints the string in a text box.
textBox1.Text = myDataObject.GetData("System.String", false).ToString() + '\n';
} else
{
textBox1.Text = "Could not find data of the specified format" + '\n';
}
// Prints the string in a text box with autoconvert = true.
textBox1.Text += myDataObject.GetData("System.String", true).ToString();
}
Private Sub GetMyData3()
' Creates a new data object using a string and the text format.
Dim myString As String = "My new text string"
Dim myDataObject As New DataObject(DataFormats.Text, myString)
' Prints the string in a text box with autoconvert = false.
If (myDataObject.GetData("System.String", False) IsNot Nothing) Then
' Prints the string in a text box.
textBox1.Text = myDataObject.GetData("System.String", False).ToString() & ControlChars.Cr
Else
textBox1.Text = "Could not find data of the specified format" & ControlChars.Cr
End If
' Prints the string in a text box with autoconvert = true.
textBox1.Text += myDataObject.GetData("System.String", True).ToString()
End Sub
注解
autoConvert
如果 参数为 true
,并且此方法找不到指定格式的数据,则会尝试将数据转换为格式。 如果无法将数据转换为指定的格式,或者如果数据存储时自动转换设置为 false
,则此方法返回 null
。
autoConvert
如果 参数为 false
,则此方法返回指定格式的数据,或者null
找不到此格式的数据。
若要确定数据是否与 数据关联或可转换为 格式,请在调用 之前调用 GetDataPresentGetData。 调用 GetFormats 此 DataObject中存储的数据的有效格式列表。
注意
如果存储的数据指定允许转换,并且请求的格式与存储的格式兼容,则可以将数据转换为另一种格式。 例如,存储为 Unicode 的数据可以转换为文本。
当 为 Html时format
,此方法在面向 .NET 4.5 或更高版本的应用程序中返回 UTF-8 编码字符串,并在面向 .NET 4.0 或更低版本的应用程序中返回 ANSI 编码字符串。
另请参阅
适用于
GetData(String)
返回与所指定数据格式关联的数据。
public:
virtual System::Object ^ GetData(System::String ^ format);
public virtual object GetData (string format);
public virtual object? GetData (string format);
abstract member GetData : string -> obj
override this.GetData : string -> obj
Public Overridable Function GetData (format As String) As Object
参数
- format
- String
要检索的数据的格式。 请参见 DataFormats 以获取预定义的格式。
返回
与指定格式关联的数据,或为 null
。
实现
示例
下面的代码示例检索存储在 中的数据 DataObject。 首先,使用文本数据创建新的 DataObject 。 然后,检索数据,将其格式指定为字符串,并显示在文本框中。
此代码要求 textBox1
已创建 。
private:
void AddMyData3()
{
// Creates a component to store in the data object.
Component^ myComponent = gcnew Component;
// Creates a new data object.
DataObject^ myDataObject = gcnew DataObject;
// Adds the component to the DataObject.
myDataObject->SetData( myComponent );
// Prints whether data of the specified type is in the DataObject.
Type^ myType = myComponent->GetType();
if ( myDataObject->GetDataPresent( myType ) )
{
textBox1->Text = String::Concat( "Data of type ", myType,
" is present in the DataObject" );
}
else
{
textBox1->Text = String::Concat( "Data of type ", myType,
" is not present in the DataObject" );
}
}
private void AddMyData3() {
// Creates a component to store in the data object.
Component myComponent = new Component();
// Creates a new data object.
DataObject myDataObject = new DataObject();
// Adds the component to the DataObject.
myDataObject.SetData(myComponent);
// Prints whether data of the specified type is in the DataObject.
Type myType = myComponent.GetType();
if(myDataObject.GetDataPresent(myType))
textBox1.Text = "Data of type " + myType.ToString() +
" is present in the DataObject";
else
textBox1.Text = "Data of type " + myType.ToString() +
" is not present in the DataObject";
}
Private Sub AddMyData3()
' Creates a component to store in the data object.
Dim myComponent As New Component()
' Creates a new data object.
Dim myDataObject As New DataObject()
' Adds the component to the DataObject.
myDataObject.SetData(myComponent)
' Prints whether data of the specified type is in the DataObject.
Dim myType As Type = myComponent.GetType()
If myDataObject.GetDataPresent(myType) Then
textBox1.Text = "Data of type " & myType.ToString() & _
" is present in the DataObject"
Else
textBox1.Text = "Data of type " & myType.ToString() & _
" is not present in the DataObject"
End If
End Sub
注解
如果此方法找不到指定格式的数据,它会尝试将数据转换为格式。 如果无法将数据转换为指定格式,或者如果数据存储时自动转换设置为 false
,则此方法返回 null
。
若要确定数据是否与 数据关联或可转换为 格式,请在调用 之前调用 GetDataPresentGetData。 调用 GetFormats 此 DataObject中存储的数据的有效格式列表。
注意
如果存储的数据指定允许转换,并且请求的格式与存储的格式兼容,则可以将数据转换为另一种格式。 例如,存储为 Unicode 的数据可以转换为文本。
当 为 Html时format
,此方法在面向 .NET 4.5 或更高版本的应用程序中返回 UTF-8 编码字符串,并在面向 .NET 4.0 或更低版本的应用程序中返回 ANSI 编码字符串。
另请参阅
适用于
GetData(Type)
返回与所指定类类型格式关联的数据。
public:
virtual System::Object ^ GetData(Type ^ format);
public virtual object GetData (Type format);
public virtual object? GetData (Type format);
abstract member GetData : Type -> obj
override this.GetData : Type -> obj
Public Overridable Function GetData (format As Type) As Object
参数
返回
与指定格式关联的数据,或为 null
。
实现
示例
下面的代码示例检索存储在 中的数据 DataObject。 首先, DataObject 使用组件创建新的 。 然后,检索数据并指定其类型。 检索到的数据类型显示在文本框中。
此代码要求 textBox1
已创建 。
private:
void GetMyData()
{
// Creates a component to store in the data object.
Component^ myComponent = gcnew Component;
// Creates a new data object and assigns it the component.
DataObject^ myDataObject = gcnew DataObject( myComponent );
// Creates a type to store the type of data.
Type^ myType = myComponent->GetType();
// Retrieves the data using myType to represent its type.
Object^ myObject = myDataObject->GetData( myType );
if ( myObject != nullptr )
{
textBox1->Text = String::Format( "The data type stored in the DataObject is: {0}",
myObject->GetType()->Name );
}
else
{
textBox1->Text = "Data of the specified type was not stored in the DataObject.";
}
}
private void GetMyData() {
// Creates a component to store in the data object.
Component myComponent = new Component();
// Creates a new data object and assigns it the component.
DataObject myDataObject = new DataObject(myComponent);
// Creates a type to store the type of data.
Type myType = myComponent.GetType();
// Retrieves the data using myType to represent its type.
Object myObject = myDataObject.GetData(myType);
if(myObject != null)
textBox1.Text = "The data type stored in the DataObject is: " +
myObject.GetType().Name;
else
textBox1.Text = "Data of the specified type was not stored " +
"in the DataObject.";
}
Private Sub GetMyData()
' Creates a component to store in the data object.
Dim myComponent As New Component()
' Creates a new data object and assigns it the component.
Dim myDataObject As New DataObject(myComponent)
' Creates a type to store the type of data.
Dim myType As Type = myComponent.GetType()
' Retrieves the data using myType to represent its type.
Dim myObject As Object = myDataObject.GetData(myType)
If (myObject IsNot Nothing) Then
textBox1.Text = "The data type stored in the DataObject is: " & myObject.GetType().Name
Else
textBox1.Text = "Data of the specified type was not stored " & "in the DataObject."
End If
End Sub
注解
如果此方法找不到指定格式的数据,它会尝试将数据转换为格式。 如果无法将数据转换为指定格式,或者如果数据存储时自动转换设置为 false
,则此方法返回 null
。
若要确定数据是否与 数据关联或可转换为 格式,请在调用 之前调用 GetDataPresentGetData。 调用 GetFormats 此 DataObject中存储的数据的有效格式列表。
注意
如果存储的数据指定允许转换,并且请求的格式与存储的格式兼容,则可以将数据转换为另一种格式。 例如,存储为 Unicode 的数据可以转换为文本。