我在MS Word中看到,我们可以粘贴一些选择题,并保留单选按钮。所以我知道在剪贴板数据中,选中或取消选中的单选按钮仍然存在,但是无法将其粘贴到Textbox或Rich TextBox中,所以我认为唯一简单的方法(无需创建新类型的文本框) )当它仍然在剪贴板数据中时处理单选按钮并用我们喜欢的一些unicode字符替换它。
我的问题是:MS .Net框架是否提供了可以保留单选按钮的文本框?如果没有,则当文本数据在剪贴板中时如何检测单选按钮。
感谢阅读:)
我正在尝试使用这个函数:Clipboard.GetData(“HTML Format”)。ToString(),但是我对标签感到困惑,写了html翻译已经用尽了,可能无法正常工作。
答案 0 :(得分:0)
我明白了,我认为MS字也会得到单选按钮,因为它会检测到html代码,所以这就是我的工作方式。
if (Clipboard.ContainsData("HTML Format"))
{
string data = Clipboard.GetData("HTML Format").ToString();
int start, end;
data = data.Replace(" ", " ");
//data = data.Replace(Environment.NewLine + " ", " ");
string subData;
while (data.Contains('<') && data.Contains('>'))
{
start = data.IndexOf('<');
end = data.IndexOf('>');
subData = data.Substring(start, end - start + 1);
if (subData.Contains("checked="))
data = data.Insert(end+1, "`");
data = data.Remove(start, end - start+1);
}
foreach(string str in data.Split(Environment.NewLine.ToCharArray()))
{
if (!string.IsNullOrWhiteSpace(str))
{
builder.Append(str);
builder.Replace(" ",string.Empty);
builder.Replace(" ", string.Empty);
builder.Append(Environment.NewLine);
}
}
richTextBox1.Text = builder.ToString();
MessageBox.Show("complete");
Clipboard.SetText(builder.ToString());
builder.Clear();
}
我知道这段代码并不完美,但确实解决了我的问题。