當前我們調用Web服務來檢查用戶是否有權使用聊天室,並且我們收到0或1.我想添加也能夠接收2,這將表明它現在被啓用和授權 ,所以我想使用三個狀態複選框,完全填充將表示他已被授權並且當前已啓用(登錄),檢查將表示他已被授權但現在未啓用,未選中將意味着他沒有這個聊天室的許可。使用三狀態複選框來確定字段的三種狀態
這是我目前使用的一些代碼。僅供參考我從我們的開發人員手中接管了這個項目,我對此很感興趣,如果你能給我一個例子,即使只是爲了authtac1
,那麼我會弄清楚如何去做所有其他的事情,我也需要添加一個新場ActiveTac1
像我有AuthTac1
?謝謝你的幫助。
public partial class IMeditor : Form
{
private IMuser imu;
private IMui IMui;
private IMdata IMdata;
public IMeditor(IMui IMui, IMuser U, string Member)
{
InitializeComponent();
this.IMui= IMui;
imu = U;
if (imu.UID == 0)
{
Add.Text = "Add";
imu.MemberNick= Member;
}
else
Add.Text = "Update";
IMdata = new IMdata();
MemberHandle.Text = imu.MemberHandle;
IM.Text = imu.IM;
AuthChat.Checked = imu.AuthChat == 1;
AuthTac1.Checked = imu.AuthTac1 == 1;
AuthTac2.Checked = imu.AuthTac2 == 1;
AuthTac3.Checked = imu.AuthTac3 == 1;
AuthTac4.Checked = imu.AuthTac4 == 1;
switch (imu.Transport.ToLower()) {
case "aim": Transport.SelectedIndex = 0; break;
case "gtalk": Transport.SelectedIndex = 1; break;
case "msn": Transport.SelectedIndex = 2; break;
case "yahoo": Transport.SelectedIndex = 3; break;
}
private void Add_Click(object sender, EventArgs e)
{
IMdata.AddIM(IMui.Username, IMui.Password, imu.UID, MemberHandle.Text, Transport.Text, IM.Text,
AuthChat.Checked ? 1 : 0, 0,
AuthTac1.Checked ? 1 : 0, AuthTac2.Checked ? 1 : 0, AuthTac3.Checked ? 1 : 0,
AuthTac4.Checked ? 1 : 0);
Close();
}
最後一個問題,以確保我沒有搞砸任何東西 @competemt_tech這就是我最終使用(感謝這麼這麼多的幫助,我們的開發者誰能夠幫助我)
要知道如何設置的複選框,當我從我使用
AuthChat.CheckState = GetCheckStateFromAuthCode(imu.AuthChat, imu.Enabled);
AuthTac1.CheckState = GetCheckStateFromAuthCode(imu.AuthTac1, imu.Tac1Enabled);
AuthTac2.CheckState = GetCheckStateFromAuthCode(imu.AuthTac2, imu.Tac2Enabled);
AuthTac3.CheckState = GetCheckStateFromAuthCode(imu.AuthTac3, imu.Tac3Enabled);
的WebService的數據,然後我用:
private CheckState GetCheckStateFromAuthCode(int AuthCode, int Enabled)
{
switch (AuthCode + Enabled)
{
case 0:
return CheckState.Unchecked; // Unauthorized
case 1:
return CheckState.Checked; // Authorized, not enabled
case 2:
return CheckState.Indeterminate; // Authorized and enabled
default:
return CheckState.Unchecked;
}
}
後,我做出改變,發回給我使用的web服務:我用
imu.AuthChat, imu.Enabled = GetAuthCodeFromCheckState(AuthChat.CheckState),
imu.AuthTac1, imu.Tac1Enabled = GetAuthCodeFromCheckState(AuthTac1.CheckState),
imu.AuthTac2, imu.Tac2Enabled = GetAuthCodeFromCheckState(AuthTac2.CheckState),
imu.AuthTac3, imu.Tac3Enabled = GetAuthCodeFromCheckState(AuthTac3.CheckState),
然後:
private int GetAuthCodeFromCheckState(CheckState checkState)
{
switch (checkState)
{
case CheckState.Unchecked: // Unauthorized
return 0;
case CheckState.Indeterminate: // Authorized, not enabled
return 1;
case CheckState.Checked: // Authorized and enabled
return 2;
default:
return 0;
}
}
所以ID使用AuthChat.CheckState = imu.AuthChat == 1; AuthTac1.CheckState = imu.AuthTac1 == 1; 等等? –
@IzzyG:更新了答案,並提供了有關如何處理此問題的更多說明。 –
美麗的作品,當我檢索數據,。如何處理我的代碼的最後一部分(添加,也就是當我更新/保存新信息)我發回到WS如果我想進行更改(所以我可以將用戶設置爲每個0 1或2狀態房間) –